如果我使用这个正则表达式:
^((?!^aa$).)*$
它按预期工作:取消选择行首的'aa'。但是如果我尝试将它与一个类似的字符串组合在一起,它就不会这样做:
^((?!^aa$).)*$|^((?!^ss$).)*$
有谁能解释一下原因吗?我试着使用两种regex组,转义斜杠的可能方式,谷歌的问题很多,并阅读了许多regex文档。但这对我来说太复杂了。
lc8prwob1#
要禁止aa和ss,可以在^ start处使用lookahead中的alternation。
aa
ss
^
^(?!aa$|ss$).*
See this demo at regex101-这将prevent匹配任何定义的选项。前瞻是一个 * 零长度 * Assert,可以在字符串中的任何位置使用。
1条答案
按热度按时间lc8prwob1#
要禁止
aa
和ss
,可以在^
start处使用lookahead中的alternation。See this demo at regex101-这将prevent匹配任何定义的选项。
前瞻是一个 * 零长度 * Assert,可以在字符串中的任何位置使用。