困っていること
マルチバイト文字列の正規表現による置換を行いたいのですが
1つ目から9個目までは\1
, \9
などでうまくいくのに
10個目を\10
とすると\1
と0
に分割して解釈されてしまいます。
これを10個目にマッチしたと解釈させるにはどうしたらいいでしょうか?
サンプルコード
php
1<style> 2.red { 3 color: #f00; 4 } 5</style> 6<?php 7 8$pattern = "(い)(.)(.)(.)(.)(.)(.)(.)(.)(ぬ)"; 9$replacement = "\1<span class='red'>\2\3\4\5\6\7\8\9</span>\10"; 10$string = "いろはにほへとちりぬ"; 11 12echo mb_ereg_replace($pattern, $replacement, $string); 13?>
出力
いろはにほへとちりい0
(「ろ」〜「り」は赤で表示されています)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/26 05:19
2017/09/26 05:23