我有一些清单:
$bad_words = ['aaa', 'bbb', 'ccc']
$good_words= ['__aaa', 'bbb==', '#ccc==']
通过此列表,我将生成以下规则:
$rules = ['/((?<!__)aaa)/', '/(bbb(?!==))/', '/((?<!#)ccc(?!==))/']
问题:ccc规则不正确(https://regex101.com/r/cC3hY7/1):必须找到#ccc
,#ccc--
或ccc==
等字符串,并且只排除{{1}等字符串1}}
如何解决?
答案 0 :(得分:1)
您可以像下面一样使用(*SKIP)(*F)
。
(?:#ccc==|bbb==|__aaa)(*SKIP)(*F)|(?:aaa|bbb|ccc)
# |<- Strings you don't want ----->|<--strings you want-->