正则表达式 => 匹配集合中除一个字符外的所有内容

4

假设我有一个字符集 [a-z] 我想匹配字符集中除了字符 "a" 以外的所有字符 谢谢!

3个回答

11
[a-z-[e]]

表示“a到z之间的任何字符,但不包括e”。但据我所知,只有.NET、JGSoft和XML Schema支持这些“减去字符类”。

另一个例子:

[a-z-[aeiou]]

匹配任何(ASCII)辅音字母。


3
在Java中,这些将会是[a-z&&[^e]][a-z&&[^aeiou]];在字符类中,&&是一个集合交集操作符。据说Oniguruma(Ruby 1.9+,TextMate)也支持&&,但我没有测试它的能力。 - Alan Moore

5

您可以根据需要指定 字符范围,例如:

[b-z]

这将仅匹配从bz的字符。唯一的限制是它必须是字符集中有效的字符范围,以使第一个字符的编码点低于第二个字符。


1
嗨!我发现[b-z]是最简单的解决方案。但是如果我想要字母表中间的某个字母呢?比如[a-df-z],表示除了"e"之外的字母。我正在寻找一种直接的方法。 - newprint
@user465292:那是最全面的方法。另一种方法是使用“环视断言”,例如(?!e)[a-z](向前查找)或[a-z](?<!e)(向后查找)。但并非每个正则表达式库都支持这些功能。 - Gumbo

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接