「ですます」を「だである」に その2

投稿日:2019年04月14日 17時54分38秒

先日ですます体を、だである体に変換するアプリを書いた。概ね問題なく動くようになってきたが、いくつか補足しておく。
まずutf-8の扱いだが、mb_regex_encording(“UTF-8”)の効果はなさそうだ。どうにも失敗するパターンがあって、調べると正規表現側でutf-8を指定しないといけないらしい。よっって

do{$data = preg_replace("/がします(.*)。/u","がする$1。",$data,-1,$count);

のようにパターンに//uをつける必要がある。
次にどこまでマッチングするかという問題がある。上の例では、”.*”がどこまでマッチングするかにより
「外にあるような気がしますが、そうでないような気がします。」
の両方とマッチングする。文末のみにマッチングさせるには最短マッチングでマッチングさせる必要がある。”.*”を”.*?”に変えると最短に変換される。
ですますをだであるに変換する場合には隅々まで変換してもらった方が綺麗にできる。逆にだであるをですますに変換する場合には、日本語の末尾を丁寧にするという規則を適用したいので、これを制御するにはマッチング時に漢字までとか、句読点で区切っておくとか方法はある。特に漢字の検出は面倒だ。unicodeでは[一-龠]を使用して検出だが(龠は音読みで「ヤク」,訓読みで「ふえ」,Unicodeでは「9FA0」)文字コード依存の記述になる。

[<< 「ですます」を「だである」に]

[マルチスレッドサーバを作る >>]