回答編集履歴

1

濁点等の扱い

2017/11/22 04:13

投稿

ikedas
ikedas

スコア4227

test CHANGED
@@ -29,3 +29,19 @@
29
29
 
30
30
  ちなみに、ユニコードのバージョンが上がると文字が追加されますから、上記の正規表現も見直す必要があります。特に漢字は追加される頻度が高いです。
31
31
 
32
+ ---
33
+
34
+ #### クローズ後追記
35
+
36
+ 濁点 `゛`、半濁点 `゜`、音引き `ー` は、用字プロパティがKatakanaではなくCommonやInheritedになっています。ので、「片仮名の一文字」にマッチさせるには`\p{Katakana}`だけでは十分でなく、次のようにする必要があると思います。
37
+
38
+ ```perl
39
+ [\p{Katakana}\u30FC\uFF70][\u3099-\u309C\uFF9E\uFF9F]?
40
+ ```
41
+
42
+ ```python
43
+ [\u30A1-\u30FA\u30FD-\u30FE\u30FF\u31F0-\u31FF\u32D0-\u32FE\u3300-\u3357\uFF66-\uFF6F\uFF71-\uFF9D\U0001B000\u30FC\uFF70][\u3099-\u309C\uFF9E\uFF9F]?
44
+ ```
45
+
46
+ `[\u3099-\u309C\uFF9E\uFF9F]`が濁点と半濁点、`[\u30FC\uFF70]`が音引きです。
47
+