我正在搜索一个正则表达式,该正则表达式只匹配不以'开头的数字。'
例如:
.5 不行
- 确定
醇>4 确定
3.0 确定
6.45 确定
答案 0 :(得分:2)
您可以使用此模式:
^[0-9]+\.?[0-9]*$
此模式旨在检查字段,因此它使用锚点^
和$
。如果可用,最好将其替换为\A
和\z
,因为$
也可能匹配最后一行的结尾,后跟最后一个换行符,并且出于语义原因。
如果您需要在更大的字符串中找到这些数字,则需要用其他内容替换锚点:
使用lookarounds(如果它们在您的正则表达式中可用):
(?<![0-9.])[0-9]+\.?[0-9]*(?![0-9.])
在捕获组的帮助下(如果没有):
(?:^|[^0-9.])([0-9]+\.?[0-9]*)(?:$|[^0-9.])
(然后你需要提取捕获组1的内容以获得数字)
注意:您可以用基本语法编写最后一个模式(例如,与sed一起使用):
\(^\|[^0-9.]\)\([0-9][0-9]*\.\?[0-9]*\)\($\|[^0-9.]\)
答案 1 :(得分:0)