如何匹配一个单词'以......开头?但如果被引用则不会?

时间:2013-03-04 09:17:20

标签: php regex

如果有一个以199开头的单词,我需要过滤掉文本字符串 其实我正在使用

/199/

但这场比赛也是nnn199nnn

我试过

/\b199/ 

所以它只匹配一个或多个以199开头的单词

我需要解决这个过滤器的一些非常罕见的情况,所以我想简单地'引用'或'双引用'199xxx来“破解”正则表达式。

但是“199xxx”将匹配......还有'199'......

所以我的问题是

如何匹配以199开头的单词,但如果单词本身是双引号则不会?

编辑: 我必须匹配:

  • 199324342342
  • 但不是34431994433
  • 但不是ciao199dsadsa
  • 而不是“1994553”(因为双引号)

1 个答案:

答案 0 :(得分:3)

您可以使用lookbehind assertion

/(?<!['"])\b199/

(?<!['"])检查当前位置之前的字符(在数字199开头之前)是'还是"