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