我正在尝试编写一个与具有以下属性的字符串匹配的正则表达式:
见下面的例子。我使用b
来表示空格字符。
有效示例
123 b12 bb1 1bb 12b
无效的示例
bbb 1b2
我试过
[0-9 ]{1, 3}
上述正则表达式匹配所有字符为空的字符串。有人可以帮我写一个更好的正则表达式吗?
答案 0 :(得分:8)
我会使用前瞻:
^(?=.*\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
答案 1 :(得分:5)
这应该写得完整。幸运的是,如果你的意思是你只希望数字可选地前面或后面跟着空格(从1b2
位看不允许),只有少数几种可能性。
([0-9] )|([0-9]{2} )|([0-9]{3})|( [0-9])|( [0-9]{2})
你有它。
当然,如果你可以在正则表达式之外检查长度= 3,那么正则表达式本身可以缩短为
([0-9]{1,3}[ ]*)|([ ]*[0-9]{1,3})