PHP
$aaa="";
echo $nn="ab bc cd cde ab aa";
echo "<br>";
echo $n=preg_replace('/cd|ab/', '$aaa', $nn);
echo "<br>";
echo $no=preg_replace('/[a-z]/', '$bbb', $n);
echo "<br><br>";
我期待的输出是“$ aaa $ bbb $ aaa $ bbb $ bbb $ bbb”。那就是单独模式'cd'或'ab'匹配时它应该变为'$ aaa'而那些无法比拟的到'$ bbb'。
答案 0 :(得分:1)
$aaa="";
echo $nn="ab bc cd cde ab aa";
echo "<br>";
echo $n=preg_replace('/\b(cd|ab)\b/', '$aaa', $nn);
echo "<br>";
echo $no=preg_replace('/((?<= )[a-z]+)\b/', '$bbb', $n);
echo "<br><br>";
第一个替换匹配内:cd或ab在单词边界内(即空格或字符串的开头/结尾)
第二次替换匹配(a-z)1次或多次,前面有空格(因为$也是一个单词边界)。唯一的缺点是,如果cde是字符串的开头,这将与cde不匹配。