【问题标题】:simple regex for a series of numbers and dots. N{3}.N{3}.N{3}.N{3}一系列数字和点的简单正则表达式。 N{3}.N{3}.N{3}.N{3}
【发布时间】:2013-05-23 20:10:06
【问题描述】:

我有一个 C# 中的 ASP.NET 4.0 MVC 应用程序,我需要创建一个匹配 N{3}.N{3}.N{3}.{N{3} 的正则表达式,其中 N{3} 是任何 1、2 或 3 位数字 (0-9) 例如

    1.1.1.1
    111.111.111.111
    1.111.111.1

我试过了

    @"^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$"

但这符合我不希望它喜欢的东西

    111.1.1
    1111.1.1

我做错了什么?

【问题讨论】:

  • dot 是一个通配符,所以你需要像 Sean 说的那样转义它。
  • 您是否在尝试匹配 IP 地址?
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。

标签: c# asp.net-mvc regex asp.net-mvc-4


【解决方案1】:

正则表达式中的. 表示“任何字符”。因此,如果你想匹配一个文字.,你需要将它转义,如下所示:

@"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"

【讨论】:

  • +1。应该修复它。正则表达式可能会缩短为 ^\d{1,3}(\.\d{1,3}){3}$
【解决方案2】:

如果您尝试匹配 IP 地址,这里有一些很棒的 RexEx 表达式:

Regular expression to match DNS hostname or IP Address?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2022-01-23
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    相关资源
    最近更新 更多