サンプル・プログラムの実行例
サンプル・プログラム
kutoten.php | サンプル・プログラム本体 |
置換式
サンプル・プログラムの解説
149: /**
150: * 「,」を「、」に、「.」を「。」に置換する
151: * @param string $sour 元のテキスト
152: * @return string 置換後テキスト
153: */
154: function myformat($sour) {
155: //置換前の文字と置換後の文字
156: $reg[1] = ","; $reg[2] = ".";
157: $rep[1] = "、"; $rep[2] = "。";
158:
159: $dest = $sour;
160: foreach ($reg as $key=>$val) {
161: $dest = preg_replace("/{$val}/u", $rep[$key], $dest);
162: }
163: return $dest;
164: }
置換を行うためにユーザー関数 myformat を用意した。
今回は2段階の置換を行うわけだが、多段階にも対応できるよう、配列変数 $reg に合致パターン(正規表現)を、$rep に置換パターンを用意し、foreachで順次置換するようにした。
実際に置換を行うのは preg_replace 関数である。内部文字コードはUTF-8を指定することで日本語処理ができるようにしており、正規表現の修飾子 u を追加している。
その他は、これまでと同様、おまけの処理である。
しかし、このプログラムには弱点がある。
全角小数で用いられる小数「.」や、整数部分の桁区切り文字である「,」までも、句読点に変換してしまうのである。
次回は、この課題を解決することにする。
今回は2段階の置換を行うわけだが、多段階にも対応できるよう、配列変数 $reg に合致パターン(正規表現)を、$rep に置換パターンを用意し、foreachで順次置換するようにした。
実際に置換を行うのは preg_replace 関数である。内部文字コードはUTF-8を指定することで日本語処理ができるようにしており、正規表現の修飾子 u を追加している。
その他は、これまでと同様、おまけの処理である。
しかし、このプログラムには弱点がある。
全角小数で用いられる小数「.」や、整数部分の桁区切り文字である「,」までも、句読点に変換してしまうのである。
次回は、この課題を解決することにする。
参考サイト
- 正規表現で全角カンマ/ピリオドを句読点に置換する(その2)(ぱふぅ家のホームページ)
(この項おわり)
PHPと正規表現を使えば、簡単に置換できる。
(2021年8月16日)PHP8対応,リファレンスチェック改良