我需要做的是确定一个单词是否包含除了某些字母之外的字母。例如,我需要测试一个单词是否包含英文字母中的字母,除了字母:I,V和X.
目前我对上面的简单任务有这个很长的正则表达式:
Pattern pattern = Pattern.compile("[ABCDEFGHJKLMNOPQRSTUWYZ]+");
你们中的任何人都知道从Java正则表达式中排除某些字母的任何简写方法吗?感谢。
答案 0 :(得分:23)
您可以使用&&
运算符使用减法创建复合字符类:
String regex = "[A-Z&&[^IVX]]+";
答案 1 :(得分:15)
您只需在角色类中指定字符范围:
[A-HJ-UWYZ]+
答案 2 :(得分:4)
答案 3 :(得分:0)
使用[A-Z&&[^IVX]]+
排除A-Z
范围内的某些字符 - 请参阅Pattern
答案 4 :(得分:0)
'&&'不适用于我,
已使用:(?:(?![IVX])[A-Z])