c++ - 正则表达式,捕获 4 个数字。或行开始/结束

标签 c++ regex wxwidgets

我正在 try catch 任何由“.”包围的 1-2 位数字或行的开头/结尾。

EG

  • 1.0.4.11

  • 71.11.11.11

  • 0.11.0.0

有效并且:

  • 1.
  • 1111
  • 2011 年 11 月 11 日。
  • 01.10

无效

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

我需要扩展这个正则表达式来基本上验证它始终采用 x.x.x.x 格式,其中 x 是 1-2 位数字。

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

注意

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

最佳答案

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

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

See in Regex101

关于c++ - 正则表达式,捕获 4 个数字。或行开始/结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55867918/

相关文章:

c++ - QGIS 找不到头文件

c++ - 模板参数在具有相同数据类型的单一类型名称的构造函数中不起作用

c++ - CFile 读取 0 个字节

c++ - AttachConsole 尚未声明

haskell - 无法让 w Haskell 在 Mac 上从 ghc 工作

c++ - CLucene 上的 "More Like This"

java,正则表达式字符串不包含/之间的一组单词

C#正则表达式匹配文本字符串

c# - 将 C# 正则表达式转换为 javascript

c++ - 在存储到 sqlite 上的记录时处理字符串中的特殊字符