提问人:user846445 提问时间:12/15/2014 最后编辑:Hunter McMillenuser846445 更新时间:12/16/2014 访问量:1249
Ruby 正则表达式将十进制数与百分比匹配,并且仅匹配十进制数
Ruby regex to match decimal number with percentage and only decimal numbers
问:
ruby 正则表达式 () 同时匹配 45.00 和 45.00%。如何调整此正则表达式,使其仅匹配 45.00 和 45.00%\d*[,]?\d*[.]\d+
答:
3赞
Alin Purcaru
12/15/2014
#1
只需添加一个否定的 lookahead 并使十进制匹配所有格:
\d*[,]?\d*[.]\d++(?!%)
评论
0赞
Alin Purcaru
12/15/2014
@pguardiario 感谢您的指正!我记错了,所有格=贪婪,因为我把它与贪婪的算法联系在一起,你不会回溯。
0赞
nPn
12/15/2014
#2
我也不确定你到底在寻找什么。你可以试试这个,它会匹配两者 45.00 和 45.00%
(\d*[,]?\d*\.\d+[%]?)
但测试正则表达式的最佳方法是使用 Rubular
您可以输入几行测试数据,然后检查您的正则表达式是否符合您的预期
0赞
pguardiario
12/15/2014
#3
我会把它清理到:
\d[\d,.]*+(?!%)
评论
1赞
Alin Purcaru
12/15/2014
您在清理中引入了一些误报:0,,0,
0赞
pguardiario
12/16/2014
@Alin和我删除了一些假阴性:1,000,000 :)
评论