我正在寻找符合以下任何一项的正则表达式:
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位数。
答案 0 :(得分:7)
像往常一样,考虑一下你想要匹配的结构:
单个数字:
\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 。< / p>
答案 1 :(得分:0)
尝试使用此
(\d{1,2}[.])+\d{1,2}