うまく正規表現がくみたてられずにいます。どうすればよいのでしょうか?
当然ながらタブ「\t」はそのままで置換対象外としたいのです。
という要件でよければ、下記のスクリプトを参考にしてください。
$sour = "AAABBB\tCCC\t\tDDD\\\\t\\\\tEEE\t\\\\tFFF"; $dest = preg_replace("/(\\\).t/u", " ", $sour); echo "SOUR=" . $sour . "\n"; echo "DEST=" . $dest . "\n";
それはひょっとして strtr() とか str_replace() を使うべきではないでしょうか。
なんでもかんでも正規表現を使う必要はないのですよ。頭と道具は使い分けです。
$result = strtr($source, array('\\\\t', ' '));
http://jp2.php.net/str_replace
$result = str_replace('\\\\t', ' ', $source);
「preg_replaceで」という指定に反しているのでポイントは結構です。
<?php //正規表現で書きたいならコレ $str = preg_replace('/\\\\t/', ' ', $str); //str_replaceの方が早いと思います $str = str_replace("\\\\t", ' ', $str); //\を文字として扱いたいならダブルクオートよりシングルクオートの方が楽です $str = str_replace('\\t', ' ', $str); ?>
コメント(1件)
たしかにstr_replaceで十分ですね