3

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

/(cl|g|cr|d)(own)/(匹配“小丑”、“礼服”、“皇冠”和“羽绒”)

从正则表达式

/(c|g|cl|cr|d)(o(w|u))(n|d)/(匹配“crown”、“clown”、“gown”、“clod”等)。

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

4

1 回答 1

4

好吧,你可以这样写:

/(?:cl|g|cr|d)o(?:un|wd)|co[wu][nd]/

但更一般地说,您可以使用负前瞻:

/(?!(?:cl|g|cr|d)own)(?:c|g|cl|cr|d)o[wu][nd]/
于 2013-03-23T01:25:37.813 回答