正規表現で、苦しい「く」 続報

前回の日記

山田太郎(やまだたろう)

これを

山田太郎

と表示したい。


前回は、括弧内の文字を削除する方法を取ったものの
バグが発生し原因も不明でした。

バグの内容は

佐藤美来(さとうみく)

と、(く)があると、括弧内文字列を削除しないというもの。


結局原因は不明だったのだけど
括弧内文字列削除がダメなら
括弧までの文字列を抽出すればいいじゃない\(^o^)/


というマリーアントワネット論法を用い
このような正規表現にしました

$data = "山田太郎(やまだたろう)";
$patstr="^([^\((]*)[\((].*";
$repstr="\\1";
$data = mb_ereg_replace($patstr, $repstr, $data);

echo $data;
?>


頭から文字列を読んでいき
( のところまで読み込む。

という正規表現です。


これで解決\(^o^)/


でも、(く)の原因は未だにわからず、ちょっと気持ち悪いです。
原因わかる人いないかな・・・
[PR]

by hiro__neko | 2012-11-20 16:29 | PGじゃない人間の備忘録  

<< Passbookの間違えた使い方 西武線で009壁紙QRコードラリー >>