java - 检查具有多种长度模式的字符串

标签 java regex

我需要用正则表达式检查一个字符串。

有效的字符串例如:ABC0001A00023

我必须检查三个部分:

  1. 因此字符串应以单词符号开头:[a-zA-Z]{1,}
  2. 然后有最小的一个零:[0]{1,}
  3. 第三部分是一个数字\\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/

相关文章:

java - 动态二维数组

java - 如何使用java编写以问号开头的句子的正则表达式

javascript - 正则表达式替换重复模式

python - 获取两个字符串之间的字符串

javascript - PhpStorm 替换为 js 正则表达式

具有进度状态的 Java/Spring 线程

java - 在 Jersey Java 中向 REST WebService 发送和接收 JSON

java - 为什么这个GridBagLayout没有按计划出现?

java - 为什么编译器在方法的通用返回类型上提示 java.lang.Object

Python解析表达式并替换为另一个表达式