[英]excluding matching characters in regular expression
我遇到了正则表达式问题。
我有一个字符串需要匹配。 字符串始终以2个字母开头,然后是6位数字,例如
但是,我需要忽略字母的一种组合。 例如:
因此,我想编写一个正则表达式以仅匹配字符串的正常格式。
目前,我必须执行以下操作:
Pattern pattern = Pattern.compile("[A-Z]{2}[0-9]{6}");
...
if(pattern.matcher(n).matches() && !n.toUpperCase().startsWith("XX")) {
// do match stuff
}
如何重写我的正则表达式,以便摆脱上面代码中的startsWith子句?
使用否定的前瞻 :
"(?!XX)[A-Z]{2}[0-9]{6}"
(?!XX)
意思是“如果我可以在当前位置匹配XX
,则不匹配”,但实际上并不会更改当前位置(因此,它测试的两个字符仍可以由[AZ]{2}
匹配。 )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.