我需要用正则表达式检查一个字符串。
有效的字符串例如:ABC0001
或 A00023
。
我必须检查三个部分:
- 因此字符串应以单词符号开头:
[a-zA-Z]{1,}
- 然后有最小的一个零:
[0]{1,}
- 第三部分是一个数字
\\d+
整个字符串不能超过 8 个符号。
到目前为止我尝试了什么:
String NR_PATTERN = "^([a-zA-Z]{1,}[0]{1,}\\d+){3,8}$";
问题是,正则表达式不接受字符串:KDS0234
最佳答案
您可以在开始时尝试积极的前瞻:
(?=^.{3,8}$)([a-zA-Z]{1,}[0]{1,}\\d+)
积极的前瞻:
(?=^.{3,8}$)
会向前看?=
,确认从字符串的开头^
到结尾的$
,是否有匹配到的字符.
3 到 8 次 {3,8}
.
关于java - 检查具有多种长度模式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262235/