【问题标题】:Regex to match for zeros正则表达式匹配零
【发布时间】:2008-11-28 02:12:43
【问题描述】:

我正在寻找一个匹配几种不同组合的正则表达式模式 零,例如 00-00-0000 或 0 或 0.0 或 00000

请帮忙

谢谢!

编辑:

嗯,我有一个返回结果集的 Web 服务,根据它返回给我的内容,我可以决定结果是否值得在页面上显示。因此,如果我得到 00-00-0000 或 0 或 00000,我会假设未找到数据,但是如果它带回 001 或 000123 或 0356.00 - 1000 或 0.6700,这将是有效的。

希望这能澄清我的问题

谢谢

【问题讨论】:

  • 给出更多的例子或更好的定义。使用正则表达式,您正在描述一种语言的语法(零语言:))。在这种语言中什么是有效的,什么不是? 0..0 或 0.-.0 或 0#0 有效吗?
  • 能返回0baa吗?有效吗?
  • 我认为“除了一些疯狂的零之外的任何东西”都是“有效的”......所以他匹配疯狂零的愿望是检查无效:)
  • 如何将字符串转换为整数,然后与 0 比较?

标签: regex


【解决方案1】:

您需要更好地定义出现在零之间的有效内容。从您的问题出发,我假设您正在寻找任意数量的零以及任意数量的“-”和“。”分组。他们之间……

0([-.]?0+)*

希望你不介意,肥皂盒:

根据问题编辑,您要查找的是其中包含非零数字的任何字符串,因此:

[1-9]

或者,如果正则表达式引擎自动锚定字符串的开头和结尾:

.*[1-9].*

可能是更好的解决方案。

这与您要求的测试相反,但很容易改变(反转 if 语句的含义)。

【讨论】:

    【解决方案2】:
    [^123456789]+
    

    [^1-9]+
    

    我相信这就是您正在寻找的...

    【讨论】:

      【解决方案3】:

      我使用这个,以零开始和结束,并且只包含零。

      ^[0]+$
      

      【讨论】:

        【解决方案4】:

        这是与您目前所要求的内容相匹配的正则表达式。如果还有更多你想要匹配的,请注明。

        0+((\.0+)|(-0+)*)
        

        这符合您要求的所有示例。

        【讨论】:

          【解决方案5】:

          您似乎把需要做的事情过于复杂化了。与其寻找全为零的不同组合,不如使用正则表达式来识别您确实关心的数据。

          因此,我建议你使用这个:[1-9]

          如果字符串包含任何非零数字,这将匹配,当然假设您正在查看数字数据。

          【讨论】:

            【解决方案6】:

            试试这个:

            (00-00-0000|0|0\\.0|00000)
            

            【讨论】:

            • 哈,其实很有趣,但问题包括“比如……”,仍然+1让我打喷嚏。
            【解决方案7】:

            你好,你只能匹配“0”

            ^0([-.]?[0]*)$
            

            它可以匹配 0、0.00、0.,但不能匹配 0.001、01 或其他任何值。

            【讨论】:

              猜你喜欢
              • 2016-05-05
              • 2013-10-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-04-02
              • 1970-01-01
              • 2019-03-30
              • 2011-05-01
              相关资源
              最近更新 更多