CODE:
$raw = "Test List: Dist. dist Disti distributor";
$repld = preg_replace('/\b(dist(\.|i?)(ributor)?)\b/i', 'ruff', $raw);
echo $repld;
期望值:
测试清单:ruff ruff ruff ruff
获取:
测试清单:皱纹。 ruff ruff ruff
在第一次" ruff"之后的那个顽固的小时期我似乎无法弄明白
当然,我没有正则表达式,但我认为\.
会匹配:)
我哪里错了?
答案 0 :(得分:2)
\b
与.
和之间的部分不匹配。因为那不是一个单词边界。
将\.
移到\b
:
$repld = preg_replace('/\b(disti?(ributor)?)\b\.?/i', 'ruff', $raw);
虽然当然它现在与你可能不想要的Distributor.
相匹配。但是,即使您的原始代码也匹配您可能不想要的distiributor
。