英文と日本訳の間にタグを挿入する正規表現

実現したいこと

英文とその日本語訳が複数連なってる文章があり、英文と日本語文の後ろに<br>を挿入するために以下のようなコードを考えました。

試したコード

PHP

1function insertBreak_JpEn($str) {2 $jpPattern = '[ぁ-んァ-ン一-龥。]';3 $strWithBreaks = preg_replace('/(\.|[a-zA-Z])(\s*(' . $jpPattern . '))|('.$jpPattern.')(\s*([a-zA-Z]))/u', '$1<br>$2$4$5', $str);4 return $strWithBreaks;5}

発生している問題

しかしこれでは以下のような文章を処理すると日本語の。の前に<br>が入ってしまいます。そうではなく。の後ろに入ってくれないと困るのですがどうしてこういうことになるのでしょうか

(処理対象例文) It's my house.それは私の家です。Don't do it in my house.それをウチでやるな。My house is small.私の家は狭い。
(処理後の文章) It's my house.<br>それは私の家です<br>。Don't do it in my house.<br>それをウチでやるな<br>。My house is small.<br>私の家は狭い。

試したこと

変数$jpPatternの中身から。を除いたりしました

コメントを投稿

0 コメント