我试图为我的powershell代码创建一个正则表达式模式。我之前从未使用过正则表达式,所以我是一个总的菜鸟。
正则表达式应该检查字符串中是否有两个点。
应该工作的例子:
3.1.1
5.10.12
10.1.15
不应该起作用的例子:
3
3.1
5.10.12.1
字符串中必须有两个点,数字位数并不重要。
我尝试过这样的事情,但它并没有真正发挥作用,我认为它远非正确的解决方案......
([\d]*.[\d]*.[\d])
答案 0 :(得分:2)
在你当前的正则表达式中,我认为你可以逃脱点\.
,否则点会匹配任何角色。
您可以为字符串的开头^
和结束$
添加锚点,并将正则表达式更新为^\d*\.\d*\.\d*$
这也符合..4
和..
或者,如果您想匹配一个或多个数字,我认为您可以使用^\d+(?:\.\d+){2}$
那就匹配
^ # From the beginning of the string \d+ # Match one or more digits (?: # Non capturing group \.\d+ # Match a dot and one or more ditits ){2} # Close non capturing group and repeat 2 times $ # The end of the string
答案 1 :(得分:1)
使用前瞻:
^\d(?=(?:[^.]*\.[^.]*){2}$)[\d.]*$
<小时/> 细分,这说:
^ # start of the line
\d # at least one digit
(?= # start of lookahead
(?:[^.]*\.[^.]*){2} # not a dot, a dot, not a dot - twice
$ # anchor it to the end of the string
)
[\d.]* # only digits and dots, 0+ times
$ # the end of the string
<小时/> 请参阅a demo on regex101.com。