在JavaScript中,是否可以排除一个正则表达式的匹配(通过编写另一个正则表达式)?例如,我想排除正则表达式的所有匹配
/(cl|g|cr|d)(own)/
(与“小丑”,“礼服”,“皇冠”和“向下”相匹配)
来自正则表达式
/(c|g|cl|cr|d)(o(w|u))(n|d)/
(匹配“皇冠”,“小丑”,“礼服”,“土块”等)。
组合正则表达式应匹配与第一个正则表达式匹配的所有字符串,但不匹配与第二个正则表达式匹配的字符串。
答案 0 :(得分:4)
好吧,你可以这样写:
/(?:cl|g|cr|d)o(?:un|wd)|co[wu][nd]/
但更一般地说,你可以使用负向前瞻:
/(?!(?:cl|g|cr|d)own)(?:c|g|cl|cr|d)o[wu][nd]/