Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在全文搜索中替换名称,忽略标点符号并保持原样。PHP&;正则表达式_Php_Regex_Preg Replace_Punctuation - Fatal编程技术网

在全文搜索中替换名称,忽略标点符号并保持原样。PHP&;正则表达式

在全文搜索中替换名称,忽略标点符号并保持原样。PHP&;正则表达式,php,regex,preg-replace,punctuation,Php,Regex,Preg Replace,Punctuation,我试图用链接替换文本文件中出现的某些字符串。有些实体由一个以上的单词组成,即它们是中间有空格的字符串。我本质上是在寻找一个考虑标点符号并且不区分大小写的正则表达式。我的“解决方案”似乎只是在兜圈子,而我的正则表达式知识还不足以解决这个问题:( 让我走了这么远: 安东尼·安德森(生于1970年8月15日)是一名演员、喜剧演员和作家。他曾主演过安东尼·安德森以及福克斯情景喜剧。[[托尼·安德森][[托尼·安德森]][[托尼·安德森][[托尼·安德森]]安东尼·安德森..安东尼·安德森。安东尼·安德森

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

让我走了这么远:

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

但我追求的是:

[[Tony Anderson]](生于1970年8月15日)是一名演员、喜剧演员和作家。他曾主演过[[Tony Anderson]],以及福克斯情景喜剧。[[Tony Anderson].[[Tony Anderson]]?![[Tony Anderson].[[Tony Anderson].[[Tony Anderson]].[[Tony Anderson]].[[Tony Anderson]].[[Tony Anderson].]安东尼Anderson]不应与Santhony Anderson相提并论


我缺少什么?

我认为您希望使用单词边界来匹配,
\b
。这包括非单词字符,但也包括字符串的开头或结尾:

/\bAnthony Anderson\b/i

哦,非常感谢。99%有效,而且似乎非常简单。但是在换行符或双空格上似乎失败了?尝试使用多行修改器:--我不确定你说的双空格是什么意思though@RidIculous括号是不必要的,或者
\s
可以用在牙床上,伙计,你是冠军!我真的不会像你那样做太多正则表达式嗯……我怎么能接受你的答案呢?@点击号码下的复选标记(因为你的代表,你可能需要等待一段时间)。投票也很好
/\bAnthony Anderson\b/i