【发布时间】:2020-11-04 17:45:27
【问题描述】:
我正在尝试创建一个匹配任何值的正则表达式:
- 可以以+开头,也可以不开头
- 仅由数字组成
- 在 + 之后(如果存在)和任何一组数字之间都允许有空格
- 必须至少包含一个数字
我已经完成了以下正则表达式 ^[+]{0,1}[0-9 ]+$,它涵盖了前 3 个案例,但不包括最后一个案例,因为以下值 "+ " 或 " " 与正则表达式匹配,这不是我想要的,因为它们包含没有号码。
【问题讨论】:
标签: regex
我正在尝试创建一个匹配任何值的正则表达式:
我已经完成了以下正则表达式 ^[+]{0,1}[0-9 ]+$,它涵盖了前 3 个案例,但不包括最后一个案例,因为以下值 "+ " 或 " " 与正则表达式匹配,这不是我想要的,因为它们包含没有号码。
【问题讨论】:
标签: regex
您可以使用可选的+ 开始模式,后跟可选的空格。然后首先匹配单个数字,然后匹配可选的空格或数字。
^[+]? *[0-9][0-9 ]*$
如果前导空格只能出现在有+: 的地方,则+ 和空格可以是可选的:
^(?:[+] *)?[0-9][0-9 ]*$
【讨论】:
+?
+ 后跟 0+ 个空格可选。
假设数字组由空格分隔:
^\+?( *\d+)+$
注意事项:
{0,1} 替换为?
[0-9] 替换为\d
【讨论】: