【问题标题】:Regex to match an optional '+' symbol followed by any number of digits正则表达式匹配可选的“+”符号,后跟任意数量的数字
【发布时间】:2020-03-15 02:38:45
【问题描述】:

我想要一个正则表达式来匹配一个字符串,该字符串可能以加号开头,也可能不以加号开头,然后包含任意数量的数字。

应该匹配

  +35423452354554
  or
  3423564564

【问题讨论】:

    标签: regex


    【解决方案1】:

    这应该可行

    \+?\d+
    

    匹配行首的可选+ 和后面的数字

    编辑:

    根据 OP 的澄清请求:3423kk55 是匹配的,因为它是第一部分 (3423)。要匹配整个字符串,只能使用它:

    ^\+?\d+$
    

    【讨论】:

      【解决方案2】:

      它看起来像这样:

      \+?\d+
      

      \+ 表示文字加号,? 表示前面的组(加号)可以出现 0 次或 1 次,\d 表示数字字符,最后的 + 要求前面的组(数字)出现一次或多次。

      编辑: 使用正则表达式时,请记住 findmatches 之间存在区别(至少在 Java 中,尽管大多数正则表达式实现具有类似的方法)。 find 将在所属字符串的某处找到子字符串,而 matches 将尝试将整个字符串与模式匹配,如果之前或之后有多余的字符则失败。确保您使用的是正确的方法,并记住您可以添加 ^ 来强制行首和 $ 强制行尾(使整个事情看起来像 ^\+?\d+$.

      【讨论】:

        【解决方案3】:

        简单^\+?\d+$

        起始行,然后是 1 或 0 加号,后跟至少 1 位数字,然后是 lnie 结尾

        【讨论】:

          【解决方案4】:

          它的 Perl 正则表达式可以是:\+?\d+

          【讨论】:

            猜你喜欢
            • 2020-12-01
            • 2014-02-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-12-12
            • 1970-01-01
            相关资源
            最近更新 更多