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