No.22887 Re: 【R】文字列のコード判定(ひらがな、漢字) 【青木繁伸】 2020/04/03(Fri) 18:21
Python での記事ですが,
https://note.nkmk.me/python-re-regex-character-type/
が参考になると思います。
R では以下のようになります。HIRAGANA = "[\u3041-\u309F]" # ひらがなの正規表現
grepl(HIRAGANA, "あ") # TRUE
grepl(HIRAGANA, "ア") # FALSE
KATAKANA = "[\u30A0-\u30FF]" # カタカナの正規表現
grepl(KATAKANA, "ア") # TRUE
grepl(KATAKANA, "あ") # FALSE
# 簡易
KANJI0 = "[\u4E00-\u9FFF]" # 漢字の正規表現(簡易版)
grepl(KANJI0, "漢") # TRUE
grepl(KANJI0, "々") # FALSE
grepl(KANJI0, "〆") # FALSE
grepl(KANJI0, "〇") # FALSE
# 完全
KANJI = "[\u2E80-\u2FDF\u3005-\u3007\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF\U00020000-\U0002EBEF]" # 漢字の正規表現(完全版)
grepl(KANJI, "漢") # TRUE
grepl(KANJI, "々") # TRUE
grepl(KANJI, "〆") # TRUE
grepl(KANJI, "〇") # TRUE
# 複数文字の場合,すべてがひらがな,カタカナ,漢字かどうかの判定
is.all.hiragana = function(s) {
t = grepl(HIRAGANA, strsplit(s, "")[[1]])
# print(t)
all(t)
}
is.all.katakana = function(s) {
t = grepl(KATAKANA, strsplit(s, "")[[1]])
# print(t)
all(t)
}
is.all.kanji = function(s) {
t = grepl(KANJI, strsplit(s, "")[[1]])
# print(t)
all(t)
}
is.all.hiragana("ひらがな")
is.all.hiragana("ひらがなイガイ")
is.all.katakana("カタカナ")
is.all.katakana("カタカナいがい")
is.all.kanji("漢字")
is.all.kanji("漢字いがい")
No.22888 御礼(Re: 【R】文字列のコード判定(ひらがな、漢字)) 【明石】 2020/04/03(Fri) 19:58
青木先生 様;
お忙しいところを失礼いたします,明石と申します。
毎々,ご丁寧なご教示をいただき,誠にありがとうございます。
今回も,ご丁寧で,分かりやすい,ご教示をいただき,誠にありがとうございました。
私はPythonも勉強し始めましたので,
青木先生がご紹介してくださいましたページも,あわせて,参照いたします。
いつもありがとうございます。
//
● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る