【发布时间】:2020-03-15 02:38:45
【问题描述】:
我想要一个正则表达式来匹配一个字符串,该字符串可能以加号开头,也可能不以加号开头,然后包含任意数量的数字。
应该匹配
+35423452354554
or
3423564564
【问题讨论】:
标签: regex
我想要一个正则表达式来匹配一个字符串,该字符串可能以加号开头,也可能不以加号开头,然后包含任意数量的数字。
应该匹配
+35423452354554
or
3423564564
【问题讨论】:
标签: regex
这应该可行
\+?\d+
匹配行首的可选+ 和后面的数字
编辑:
根据 OP 的澄清请求:3423kk55 是匹配的,因为它是第一部分 (3423)。要匹配整个字符串,只能使用它:
^\+?\d+$
【讨论】:
它看起来像这样:
\+?\d+
\+ 表示文字加号,? 表示前面的组(加号)可以出现 0 次或 1 次,\d 表示数字字符,最后的 + 要求前面的组(数字)出现一次或多次。
编辑: 使用正则表达式时,请记住 find 和 matches 之间存在区别(至少在 Java 中,尽管大多数正则表达式实现具有类似的方法)。 find 将在所属字符串的某处找到子字符串,而 matches 将尝试将整个字符串与模式匹配,如果之前或之后有多余的字符则失败。确保您使用的是正确的方法,并记住您可以添加 ^ 来强制行首和 $ 强制行尾(使整个事情看起来像 ^\+?\d+$.
【讨论】:
简单^\+?\d+$
起始行,然后是 1 或 0 加号,后跟至少 1 位数字,然后是 lnie 结尾
【讨论】:
它的 Perl 正则表达式可以是:\+?\d+
【讨论】: