正则表达式,捕获 4 个被 .或行 start/end

Regex, capture 4 numbers surrounded by . or line start/end

我正在尝试捕获任何被“.”包围的 1-2 位数字。或一行的 beginning/end。

E.G

有效并且:

无效

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

之类的组

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

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

注意

对于任何使用此作为参考的人...使用 wxWidgets,wxRegex class 必须使用 wxRE_ADVANCED 标志构造,因为默认情况下它使用 basic/fast 实现包括在此表达式中使用的量词 (?*)。

您可以通过专门查找字符串开头和结尾之间的 4 个组来降低它的通用性(如果开头或结尾没有 .,您可以删除 \.?):

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

See in Regex101