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 ) |
ガ |
`` | カ |
`` | `` |