我正在寻找与以下任何一个匹配的Regex表达式:
1.0
2.0
3.1
4.2.1
2.1.1.7
1.3.17.11
12.23.54.18
嵌套/级别可以高于4个级别。。。点之间的数字可能不超过2个数字(最后一个样本)。
我试过这个@"d.d+"
,但在某些情况下它不起作用。
我也在寻找表达,将只匹配这个:
1.0
12.0
4.0
这里也是-点前不超过2位数字。
像往常一样,考虑一下您想要匹配的结构:
一个位数:
d
任意长度的单个数字:
d+
单个数字,最多限制为2位:
d{1,2}
一个数字,后面跟着一个点,后面跟着另一个数字:
d{1,2}.d{1,2}
一个数字,后面跟着一个点,后面跟着另一个数字
d{1,2}.d{1,2}.d{1,2}
注意到图案了吗?确切地说,你可以使用分组和重复来将该模式匹配到任意长度:
d{1,2}(.d{1,2})+
注意,.
在正则表达式中是一个元字符,可以匹配(几乎)任何字符,因此要匹配文字点,需要对其进行转义(如上所示)。
为了只匹配两个嵌套级别,可以用类似的方式将*
约束在括号后面:
d{1,2}(.d{1,2}){1}
这意味着它必须与精确匹配一次。然而,在这种情况下,您也可以简化为我们以前看到的正则表达式:
d{1,2}.d{1,2}
但是,如果您想为任意n创建与n嵌套级别匹配的正则表达式,那么在末尾添加精确的重复次数可能会有所帮助。
尝试使用此
(d{1,2}[.])+d{1,2}