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