我想要一个正则表达式来匹配一个字符串,该字符串可能以或不以加号开头,然后包含任意数量的数字.
那些应该匹配
+35423452354554
or
3423564564
Run Code Online (Sandbox Code Playgroud)
Gab*_*ber 38
这应该工作
\+?\d+
Run Code Online (Sandbox Code Playgroud)
匹配+行开头的可选项和后面的数字
编辑:
截至OP的澄清要求:3423kk55是匹配的,因为它是第一部分(3423).要匹配整个字符串,请使用以下代码:
^\+?\d+$
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
\+?\d+
Run Code Online (Sandbox Code Playgroud)
该\+装置字面加号时,?该前述组(加号)可以出现0或1次的装置,\d表示数字字符,并且最后+需要前一个图组(数字)出现一次或多次.
编辑:使用正则表达式时,请记住查找和匹配之间存在差异(至少在Java中,尽管大多数正则表达式实现都有类似的方法).find会在拥有字符串中的某处找到子字符串,匹配将尝试将整个字符串与模式匹配,如果在之前或之后有额外字符,则会失败.确保你使用正确的方法,并记住你可以添加一个^强制行的开头和一个$强制行的结束(使整个事情看起来像^\+?\d+$.