在Powershell中,如何指定一个包含一个,两个或三个数字的正则表达式,后跟一个小数点和一个或两个以上的数字,用于-match
比较?
[0-9][0-9]*[0-9]*\.[0-9][0-9]*
是我能提出的最接近的,但这允许比我想要的更多数字。我找不到任何方法将术语限制为最大重复次数。
答案 0 :(得分:2)
您可以尝试使用以下内容:\d{1,3}\.\d{1,2}
。大括号内的数字表示正则表达式引擎匹配的最小和最大重复次数。有一个例子here。
您的表达问题是您正在使用*
。这意味着重复0次或多次,因此[0-9]*
适合空字符串,1位数字,2位数字等等。
替代方案(并且更接近您所做的)将改为使用?
运算符,这意味着0
或1
个实例,因此:[0-9][0-9]*[0-9]*\.[0-9][0-9]*
将成为:[0-9][0-9]?[0-9]?\.[0-9][0-9]?
,它将匹配一个数字后跟,可选最多2个数字,后跟一个句点,一个数字和可选的1个数字。