我正在尝试编写一个与具有以下属性的字符串匹配的正则表达式:
- 正好包含 3 个字符。
- 可以包含空格。
- 至少一个字符应为非空格。
- 只允许空格和数字。
请参阅下面的示例。我b
用来表示一个空格字符。
有效示例
123 b12 bb1 1bb 12b
无效示例
bbb 1b2
我试过了
[0-9 ]{1, 3}
上面的正则表达式匹配所有字符为空的字符串。有人可以帮我写一个更好的正则表达式吗?
我正在尝试编写一个与具有以下属性的字符串匹配的正则表达式:
请参阅下面的示例。我b
用来表示一个空格字符。
有效示例
123 b12 bb1 1bb 12b
无效示例
bbb 1b2
我试过了
[0-9 ]{1, 3}
上面的正则表达式匹配所有字符为空的字符串。有人可以帮我写一个更好的正则表达式吗?
我会为此使用前瞻:
^(?=.*\d)[\d ]{3}$
解释:
^ # Start of string
(?=.*\d) # Assert presence of at least one digit
[\d ]{3} # Match exactly three digits or spaces
$ # End of string
这应该完整地写出来。幸运的是,如果您的意思是您只需要可选地前面或后面有空格的数字(从1b2
不允许的位来看),那么只有少数可能性。
([0-9] )|([0-9]{2} )|([0-9]{3})|( [0-9])|( [0-9]{2})
你有它。
当然,如果您可以在正则表达式之外检查长度=3,则正则表达式本身可以缩短为
([0-9]{1,3}[ ]*)|([ ]*[0-9]{1,3})