首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在全文搜索中替换姓名,忽略标点符号并使其保持得体。PHP和Regex

在全文搜索中替换姓名,忽略标点符号并使其保持得体。PHP和Regex
EN

Stack Overflow用户
提问于 2013-02-17 08:02:50
回答 1查看 87关注 0票数 1

我正在尝试用链接替换文本文件中出现的某些字符串。一些实体由一个以上的单词组成,即它们是中间有空格的字符串。我本质上是在寻找一种考虑标点符号并且不区分大小写的正则表达式。我的“解决方案”似乎在绕圈子,我的正则表达式知识对此还不够好:

代码语言:javascript
运行
复制
$pattern = '/[ ._*&^%$#!?!]Anthony Anderson[ ._*&^%$#!?!]/i';

$replacement = '[[Tony Anderson]]';

$subject = 'Anthony anderson. (born August 15, 1970) is an actor, comedian, and writer. He has starred ... the ANTHony Anderson, as well as in Fox sitcom. anthony Anderson. Anthony aNderson? !Anthony AnderSon. Anthony    Anderson. . anthony
anderson. Anthony Andersoneon should not match neither should Santhony Anderson ';

echo preg_replace($pattern, $replacement, $subject, -1 );

让我走到这一步:

安东尼·安德森。(生于1970年8月15日)是一名演员、喜剧演员和作家。他主演过..。ANTHony Anderson,以及在福克斯情景喜剧中。。安东尼·安德森。安东尼·安德森不应该与桑托尼·安德森匹敌

但我在寻找:

[托尼·安德森]。(生于1970年8月15日)是一名演员、喜剧演员和作家。他主演过..。[托尼·安德森],以及福克斯情景喜剧。[托尼·安德森]。[托尼·安德森]?![托尼·安德森]。。[托尼·安德森]。安东尼·安德森不应该与桑托尼·安德森匹敌

我遗漏了什么?

EN

Stack Overflow用户

回答已采纳

发布于 2013-02-17 08:05:30

我想你应该用边界这个词来匹配,\b。这包括非单词字符,但也包括字符串的开头或结尾:

代码语言:javascript
运行
复制
/\bAnthony Anderson\b/i
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14916568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档