Java Regex include all letters of the alphabet except certain letters

醉酒当歌 提交于 2019-12-08 14:35:58

问题


What I need to do is to determine whether a word consists of letters except certain letters. For example I need to test whether a word consists of the letters from the English alphabet except letters: I, V and X.

Currently I have this long regex for the simple task above:

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

Any of you know any shorthand way of excluding certain letters from a Java regex? Thanks.


回答1:


You can use the && operator to create a compound character class using subtraction:

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



回答2:


You could simply specify character ranges inside your character class:

[A-HJ-UWYZ]+



回答3:


Just use a negative lookahead in your pattern.

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

DEMO




回答4:


Use [A-Z&&[^IVX]]+ to exclude certain characters from the A-Z range - see Pattern



来源:https://stackoverflow.com/questions/25608925/java-regex-include-all-letters-of-the-alphabet-except-certain-letters

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!