仮名(など)に対する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)
全角"@" (\uff20)
全角"A" (\uff21)
全角"\" (\uff3c)
全角"~" (\uff5e)
半角中黒 (\uff65)
半角長音記号 (\uff70)
半角"カ" (\uff76)
半角"カ"+半角濁点 (\uff76\uff9e)ガ

参考