我知道三件事......
1)我知道:
a.{1,250}?z
将检查a是否在z的250个字符之内。
2)我知道
a[^b]{1,250}?z
将检查a是否在z的250个字符之内,但这些字符都不是b。
3)我也知道
a[^bad]{1,250}?z
将检查a是否在z的250个字符内,但这些字符都不是b,a或d。
但
4)
我如何检查a是否在z的250个字符内出现,但是在它们之间没有出现坏词?
想象"字符串"要求完全匹配(如在谷歌搜索中)伪代码看起来像:
a[^"bad"]{1,250}?z
答案 0 :(得分:3)
简单,使用一种预示性的前瞻。
a(?:(?!bad).){1,250}?z
(?:(?!bad).)
将匹配任何字符(换行符除外),但不匹配子字符串bad
。
此外,您必须使用锚点或字边界才能进行完全匹配,否则上述正则表达式将匹配此adccz
输入的acbadccz
。
\ba(?:(?!bad).){1,250}?z\b