正则表达式查找数量而不会尾随%符号

时间:2017-07-28 16:51:09

标签: java regex

需要使用正则表达式从下面的文本中获取金额(892.33

Property Tax Allotment 3.76% 892.33 USD

条件 - 不应考虑尾随%符号的数字

尝试使用以下模式

\\s?[0-9\\.,]{2,20}(?!\\%)\\s?

但是3.76没有%符号

2 个答案:

答案 0 :(得分:2)

为以下任何数字添加否定前瞻:

\\b[0-9.,]{2,20}(?!\\d)(?!%)\\b

Live demo

答案 1 :(得分:1)

这个怎么样:

\d+\.\d\d(?= USD)

一个或多个数字\d+后跟一个文字点\.和另外两个数字\d\d,前瞻性为“USD”(?= USD)

如果价格的小数部分是可选的,则需要稍微修改。

Try it online