正则表达式,捕获由包围的4个数字。或行的开始/结束

时间:2019-04-26 12:42:38

标签: c++ regex wxwidgets

我正在尝试捕获用'。'包围的任何1-2位数字。或一行的开头/结尾。

E.G

  • 1.0.4.11

  • 71.11.11.11

  • 0.11.0.0

有效且

  • 1。
  • 1111
  • 11.11.11。
  • 01.10

无效

现在我有了(?<=\.|^)\d{1,2}]?(?=\.|$),它可以正确捕获数字,但也可以捕获11 ..或1.11等组。

我需要扩展此正则表达式以基本验证它是否始终为x.x.x.x格式,其中x为1-2位数字。

有关其他信息,此正则表达式将使用wxWidgets正则表达式类运行,但我相信这是标准的正则表达式解析器。

注意

对于任何将此作为参考的人...使用wxWidgets时,必须使用wxRE_ADVANCED标志构造wxRegex类,因为默认情况下,它使用的基本/快速实现不包含数量词(?*)。在此表达式中使用。

1 个答案:

答案 0 :(得分:5)

可以通过在字符串的开始和结束之间专门查找4个组来使其不那么通用(如果在开始或结束处没有\.?,则可以删除.):

^\.?\d{1,2}\.\d{1,2}\.\d{1,2}\.\d{1,2}\.?$

See in Regex101