假设我有一个字符集 [a-z] 我想匹配字符集中除了字符 "a" 以外的所有字符 谢谢!
[a-z-[e]]
表示“a到z之间的任何字符,但不包括e”。但据我所知,只有.NET、JGSoft和XML Schema支持这些“减去字符类”。
另一个例子:
[a-z-[aeiou]]
匹配任何(ASCII)辅音字母。
(?!e)[a-z]
(向前查找)或[a-z](?<!e)
(向后查找)。但并非每个正则表达式库都支持这些功能。 - Gumbo完整解决方案(即无论字符在[a-z]集合中的位置,以及更加兼容):
[^\W\dA-Z && x]
其中 "x" 是你想要排除的字符(或字符组,例如 efgh)。
测试环境:
[a-z&&[^e]]
和[a-z&&[^aeiou]]
;在字符类中,&&
是一个集合交集操作符。据说Oniguruma(Ruby 1.9+,TextMate)也支持&&
,但我没有测试它的能力。 - Alan Moore