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