我想要一个正则表达式来匹配一个字符串,该字符串可能以加号开头,也可能不以加号开头,然后包含任意数量的数字。
这些应该匹配
+35423452354554
or
3423564564
我想要一个正则表达式来匹配一个字符串,该字符串可能以加号开头,也可能不以加号开头,然后包含任意数量的数字。
这些应该匹配
+35423452354554
or
3423564564
这应该工作
\+?\d+
匹配+
行首的可选项和后面的数字
编辑:
根据 OP 的澄清要求: 3423kk55 是匹配的,因为它是第一部分(3423)。要匹配整个字符串,请仅使用它:
^\+?\d+$
它看起来像这样:
\+?\d+
\+
表示字面加号,表示?
前组(加号)可以出现0次或1次,\d
表示数字字符,final+
要求前组(数字)出现一次或多次。
编辑:使用正则表达式时,请记住查找和匹配之间存在差异(至少在 Java 中,尽管大多数正则表达式实现都有类似的方法)。find将在拥有字符串的某个位置找到子字符串,并且matches将尝试将整个字符串与模式匹配,如果之前或之后有额外的字符则失败。确保您使用了正确的方法,并记住您可以添加 a^
来强制行的开头和 a$
来强制行的结尾(使整个事情看起来像^\+?\d+$
.
简单的^\+?\d+$
起始行,然后是 1 或 0 加号,后跟至少 1 位数字,然后是 lnie 结尾
它的 Perl 正则表达式可以是:\+?\d+