PHP preg_替换字边界和点

PHP preg_替换字边界和点,php,regex,preg-replace,word-boundary,Php,Regex,Preg Replace,Word Boundary,此代码删除“prod”、“by”、“ft”、“feat”、“feat”和“featured”,并应删除带有点的内容。它除去了,但留下了点。请帮忙。你知道正确的代码应该是什么样子吗?这个(\)?\b给你带来了问题-一个句点之后没有单词边界 试试这个正则表达式:/\b(prod | by | ft | feat(uring))(\.\b)/i 更新:因此,据我所知,您只想替换那些不会立即后跟更多文本的缩写 例如: Prod.which->which,但是 Prod.whatever->Prod.wh

此代码删除“prod”、“by”、“ft”、“feat”、“feat”和“featured”,并应删除带有点的内容。它除去了,但留下了点。请帮忙。你知道正确的代码应该是什么样子吗?

这个
(\)?\b
给你带来了问题-一个句点之后没有单词边界

试试这个正则表达式:
/\b(prod | by | ft | feat(uring))(\.\b)/i

更新:因此,据我所知,您只想替换那些不会立即后跟更多文本的缩写

例如:

Prod.which
->
which
,但是

Prod.whatever
->
Prod.whatever
(无更改)

这是正确的吗?如果是,那么这个解决方案呢?仅当下一个字符不是字母时才替换它。您可以使用:

/\b(以英尺为单位生产)\b(?!\[a-z])\*/我

我运行了以下测试,得到了评论中指出的结果。如果这对你不起作用,请告诉我

<?php
$name = 'malines featuring. malines2 featuring malines3 feat. malines4 feat malines5';
$name = preg_replace('/\b(prod|by|ft|feat(uring)?)(\.)?\b/i', '', $name);
?>
$regex='/\b(按| ft |专长生产)\b(?!\[a-z])\*/我;
$rep='';
echo preg_replace($regex,$rep,'prod.bla')。“
;”/布拉 echo preg_replace($regex,$rep,'prod.bla')。“
;”/普罗德布拉 echo preg_replace($regex,$rep,'feat bla')。“
”;//布拉 echo preg_replace($regex,$rep,'feat.bla')。“
;”/布拉 echo preg_replace($regex,$rep,'feat.bla')。“
;”/壮举 echo preg_replace($regex,$rep,'featured bla')。“
”;//布拉 echo preg_replace($regex,$rep,'featured.bla')。“
”;//布拉先生
建议:在
\.
\.
)之后添加一个空格,这样字符串在替换后就不会有两个空格了。你太棒了!谢谢说得好。这将去掉单词后面的一个或多个空格(带点或不带点):
/\b(prod | by | ft | feat(uring)?(\.\b)*/i
,但是,它不能正常工作。字符串“(Prod.Malines)”替换为“(Malines)”。您希望得到什么结果?据我所知,这是你想要的。
$regex = '/\b(prod|by|ft|feat(uring)?)\b(?!\.[a-z])\.? */i';
$rep = '';

echo preg_replace($regex, $rep, 'prod. bla')." <br/>"; // bla
echo preg_replace($regex, $rep, 'prod.bla')." <br/>"; // prod.bla
echo preg_replace($regex, $rep, 'feat bla')." <br/>"; // bla
echo preg_replace($regex, $rep, 'feat. bla')." <br/>"; // bla
echo preg_replace($regex, $rep, 'feat.bla')." <br/>"; // feat.bla
echo preg_replace($regex, $rep, 'featuring bla')." <br/>"; // bla
echo preg_replace($regex, $rep, 'featuring.bla')." <br/>"; // featuring.bla