Java Regex包括除特定字母外的所有字母

时间:2014-09-01 15:21:09

标签: java regex

我需要做的是确定一个单词是否包含除了某些字母之外的字母。例如,我需要测试一个单词是否包含英文字母中的字母,除了字母:I,V和X.

目前我对上面的简单任务有这个很长的正则表达式:

Pattern pattern = Pattern.compile("[ABCDEFGHJKLMNOPQRSTUWYZ]+");

你们中的任何人都知道从Java正则表达式中排除某些字母的任何简写方法吗?感谢。

5 个答案:

答案 0 :(得分:23)

您可以使用&&运算符使用减法创建复合字符类:

String regex = "[A-Z&&[^IVX]]+";

答案 1 :(得分:15)

您只需在角色类中指定字符范围:

[A-HJ-UWYZ]+

答案 2 :(得分:4)

在你的模式中使用负向前瞻。

Pattern pattern = Pattern.compile("^(?:(?![IVX])[A-Z])+$");

DEMO

答案 3 :(得分:0)

使用[A-Z&&[^IVX]]+排除A-Z范围内的某些字符 - 请参阅Pattern

答案 4 :(得分:0)

'&&'不适用于我,

已使用:(?:(?![IVX])[A-Z])