简单的RegEx:我似乎无法抓住这个时期

时间:2013-04-05 14:20:21

标签: regex preg-replace

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"之后的那个顽固的小时期我似乎无法弄明白 当然,我没有正则表达式,但我认为\.会匹配:)

我哪里错了?

1 个答案:

答案 0 :(得分:2)

\b.之间的部分不匹配。因为那不是一个单词边界。

\.移到\b

之后
$repld = preg_replace('/\b(disti?(ributor)?)\b\.?/i', 'ruff', $raw);

虽然当然它现在与你可能不想要的Distributor.相匹配。但是,即使您的原始代码也匹配您可能不想要的distiributor