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

use*_*701 19 java regex

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

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

Pattern pattern = Pattern.compile("[ABCDEFGHJKLMNOPQRSTUWYZ]+");
Run Code Online (Sandbox Code Playgroud)

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

Kep*_*pil 25

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

String regex = "[A-Z&&[^IVX]]+";
Run Code Online (Sandbox Code Playgroud)


p.s*_*w.g 17

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

[A-HJ-UWYZ]+
Run Code Online (Sandbox Code Playgroud)


Avi*_*Raj 6

只需在模式中使用负数前瞻即可。

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

演示


小智 5

'&&' 对我不起作用,

用过的:(?:(?![IVX])[A-Z])