从另一个正则表达式中排除一个正则表达式

时间:2013-03-23 01:21:47

标签: javascript regex

在JavaScript中,是否可以排除一个正则表达式的匹配(通过编写另一个正则表达式)?例如,我想排除正则表达式的所有匹配

/(cl|g|cr|d)(own)/(与“小丑”,“礼服”,“皇冠”和“向下”相匹配)

来自正则表达式

/(c|g|cl|cr|d)(o(w|u))(n|d)/(匹配“皇冠”,“小丑”,“礼服”,“土块”等)。

组合正则表达式应匹配与第一个正则表达式匹配的所有字符串,但不匹配与第二个正则表达式匹配的字符串。

1 个答案:

答案 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]/