仮名(など)に対するUnicodeプロパティによるマッチ
Unicodeプロパティによる文字クラスがどうマッチするか、Ruby 2.3.1でやってみた。
コード
input_str.scan(regexp).join
結果
| 対象 | \X | (?>\p{Hiragana}\p{M}*) | (?>\p{Katakana}\p{M}*) | \p{In_Hiragana} | \p{In_Katakana} |
|---|---|---|---|---|---|
が (\u304c) | が | が | | が | |
か+合成濁点 (\u304b\u3099) | が | が | | が | |
か+単独濁点 (\u304b\u309b) | か゛ | か | | か゛ | |
濁点付きの"う" (\u3094) | ゔ | ゔ | | ゔ | |
う+合成濁点 (\u3046\u3099) | ゔ | ゔ | | ゔ | |
う+単独濁点 (\u3046\u309b) | う゛ | う | | う゛ | |
濁点付きの"ウ" (\u30f4) | ヴ | | ヴ | | ヴ |
ウ+合成濁点 (\u30a6\u3099) | ヴ | | ヴ | ゙ | ウ |
ウ+合成濁点 (\u30a6\u309b) | ウ゛ | | ウ | ゛ | ウ |
長音記号 (\u30fc) | ー | | | | ー |
中黒 (\u30fb) | ・ | | | | ・ |
平仮名繰返し (\u309d\u309e) | ゝゞ | ゝゞ | | ゝゞ | |
片仮名繰返し (\u30fd\u30fe) | ヽヾ | | ヽヾ | | ヽヾ |
全角"!" (\uff01) | ! | | | | |
全角"(" (\uff08) | ( | | | | |
全角"0" (\uff10) | 0 | | | | |
全角"@" (\uff20) | @ | | | | |
全角"A" (\uff21) | A | | | | |
全角"\" (\uff3c) | \ | | | | |
全角"~" (\uff5e) | ~ | | | | |
半角中黒 (\uff65) | ・ | | | | |
半角長音記号 (\uff70) | ー | | | | |
半角"カ" (\uff76) | カ | | カ | | |
半角"カ"+半角濁点 (\uff76\uff9e) | ガ | | カ | | |