我希望正则表达式匹配一个字符串,该字符串可能以或不以加号开头,然后包含任意数量的数字。
那些应该匹配
+35423452354554
or
3423564564
答案 0 :(得分:32)
这应该有效
\+?\d+
匹配行的开头的可选+
和
编辑:
截至OP的澄清要求:3423kk55是匹配的,因为它是第一部分(3423)。要匹配整个字符串,请仅使用此字符:
^\+?\d+$
答案 1 :(得分:9)
它看起来像这样:
\+?\d+
\+
表示字面加号,?
表示前面的组(加号)可以显示0或1次,\d
表示数字字符,以及final +
要求前一组(数字)出现一次或多次。
编辑:使用正则表达式时,请记住 find 和匹配之间存在差异(至少在Java中,尽管大多数情况下都是如此)正则表达式实现有类似的方法)。 find 将在拥有字符串中的某处找到子字符串,而匹配将尝试将整个字符串与模式匹配,如果在之前或之后有额外的字符,则会失败。确保您使用正确的方法,并记住您可以添加^
来强制行的开头,并$
强制结束行(使整个事物看起来像{ {1}}。
答案 2 :(得分:6)
简单^\+?\d+$
开始行,然后是1或0加号,然后是至少1位数,然后是lnie
的结尾答案 3 :(得分:1)
它的Perl正则表达式可以是:\+?\d+