【发布时间】:2018-03-03 11:10:18
【问题描述】:
我正在尝试编写具有以下条件的正则表达式。
- 允许在字符串中的任何位置为空。
- 前三个是字符范围 (1-3)
- 接下来的六个是数字(必须)-范围 (6)
- 下一个可选字符 - 范围 (1-3)
- 之后可选数字 - range(0-2)
为此,我尝试了很多东西都没有效果。
^[a-zA-Z]{1,3}[0-9]{6}[a-zA-Z]{0,3}[0-9]{0,2}
此表达式可以很好地匹配所有条件,但它不允许空字符串。提前致谢。
我只想验证“AB 123456 ADF 12”之类的字符串。 正如我提到的第一点,字符串在给定字符串的任何位置都包含空格,例如“AB 123 456 ADF 12”。
【问题讨论】:
-
使整个事情可选并添加
$锚点:^(?:[a-zA-Z]{1,3}[0-9]{6}[a-zA-Z]{0,3}[0-9]{0,2})?$。如果空字符串表示没有字符或空格的字符串,请执行以下操作:^(?:[a-zA-Z]{1,3}[0-9]{6}[a-zA-Z]{0,3}[0-9]{0,2}|\s*)$ -
感谢您的回复。但这不允许字符之间有空格