2017-07-07 156 views
0

我想匹配\w的所有單詞,並排除某些特定的單詞和數字。 但我想排除雙引號和單引號之間的文字,如(?!"\w+"),但似乎不起作用。php - 正則表達式排除單引號之間的詞

我該怎麼辦?下面是我用

/(?!return|if|floor|else|elseif|NULL|null|pow|function|\d+)\b(\w+)/ 

回答

1

您可以使用(*SKIP)(*F)在PCRE預測到這樣的匹配,並且跳過某些字符串:

/(['"])\w+\1(*SKIP)(*F)|\b(?!return|elseif|else|if|floor|NULL|pow|function|\d+)\w+/i 

RegEx Demo

  • (['"])比賽的單或雙引號並捕獲它#1組
  • \w+匹配單個單詞
  • \1 backrefrence組#1,以確保我們有相同的收盤報價爲組#1
  • (*SKIP)(*F)將跳過這場比賽
相關問題