概要
- 正規表現で全角ダブルクォーテーションを扱うのにはまった
- 結論は全角のダブルクォーテーションは文字コード上2つ存在しているので、それぞれを指定する
目的
- 全角ダブルクォーテーションで囲まれた範囲の文字列を抜き出したい
例) 彼は “Hello World!” と言った
から
Hello World!
を抜き出す
正規表現
下記を参考に構築
re.search(r"(?<=\“).*?(?=\”)", sentence)
留意
当初pythonの全角半角変換パッケージであるjaconv
を使って半角のダブルクォーテーションに統一しようとしたが、それはうまくいかなかった
jaconv.normalizeは以下のように全角ダブルクォーテーションを取り扱うためである
'”'=> '"'
'“' => '``'
まとめ
ダブルクォーテーションは見た目に全角か半角か、またどちらの文字コードのなのか分かりづらいので気を付けましょう。
全角ダブルクォーテーションは悪い文明!