【发布时间】:2011-09-26 14:52:13
【问题描述】:
我正在尝试创建一个 PHP 正则表达式,如果两个单词彼此相邻出现并且它们之间有任意数量的空格,它将匹配。
例如,匹配“Daniel Baylis”(“Daniel”和“Baylis”之间有 3 个空格)。我试过了,但它似乎不起作用:
"/DANIEL[ ]{1,5}BAYLIS/" (this was to check up to 5 spaces which the most I expect in the data)
和
"/DANIEL[ ]{*}BAYLIS/"
我需要从大量文本中提取名称,并且名称可以出现在该文本中的任何位置。用户输入错误是造成多个空格的原因。
谢谢大家! - 丹
【问题讨论】:
-
您也可以先替换过时的空格,然后再匹配它,这应该更容易;)
-
DANIEL[ ]{1,5}BAYLIS这看起来不错,为什么不起作用? -
@Kent 我猜是问题所在... ;)
-
我实际上在我的脚本中使用了 /DANIEL[ ]{1,5}BAYLIS/i 虽然我没有在示例中发布,但它没有得到匹配。 @Kent - 你认为这也应该有效吗?
-
我用
grep -i测试过,它有效。我尝试的是` echo "Daniel BAYLIS"|grep -iP "Daniel[ ]{1,5}Baylis"`