匹配除某些卡以外的一切

时间:2015-11-06 19:57:18

标签: php regex pcre

我的测试字符串:G4 G4 G7 G9 G9 R3 B4 RD2 R3 YD2 R4 R5 RR W BDT Y0 YS G8 WDF

我目前这个表达式[^GWDF][0-9DTSRF]+
它匹配以G开头但与WDFW不匹配的卡片旁边的所有内容。

https://regex101.com/r/cE9kY5/3

我怎样才能这样做,它也不应该匹配任何包含4的卡?

所以它不应该以{{1​​}}开头的任何内容匹配,也不应该匹配任何带有G的卡片,并且它不匹配4W

它应该只匹配测试字符串中的以下内容:

WDF

1 个答案:

答案 0 :(得分:1)

我认为您可以使用以下正则表达式:

[^\sGWDF](?!.?4)[0-9DTSRF]+

请参阅regex demo

如果您需要匹配空格,请从表达式中删除\s

我所做的更改是添加(?!.?4)否定前瞻,如果下一个字符后面的下一个或下一个字符为4,则匹配将失败。