我有一个像这样的字符串(VIN):
String vin = "XTC53229R71133923";
我可以使用OR查看是否有字符Q,O,I:
String regExp = ".*[QOI].*";
这很有效。
但是我无法检查这3个字母中是否有任何字母不在字符串中。
这意味着:(不是Q)和(不是O)和(不是我)。 我尝试过负面的预测:
String regExp = "(?!.*[QOI].*)";
这不行。在“XTC5 Q 3229R71133923”中,它返回 true 。
主要 问题 - 我有两个条件:
我可以用2个正则表达式检查这个:
String regExp = "^([A-Z0-9]{17})$"; //should be true
String regExp = ".*[QOI].*"; //should be false
但是有没有办法在一个正则表达式中合并这两个检查 ?
答案 0 :(得分:3)
如果只使用不包含您不想要的字符的自定义范围呢?
String regexp = "^([A-HJ-NPR-Z0-9]{17})$";
答案 1 :(得分:3)
在这里你^[^QOI]{17}$
。使用^启动charcter类意味着“不匹配任何这些字符”。