0

我想在字符串中找到价格值(传入的短信)。我正在使用 java 正则表达式:

Pattern pattern = Pattern.compile("\\d+.\\d\\d");/

但是这个表达式也能找到日期。例如12.12.2013返回12.12。如果有什么方法可以只找到价格价值?也许不使用正则表达式,因为字符串不长。

已编辑 消息示例:

Oplata tovariv: S1LV0GRU RYKAVUCHKA 510, UA 02.04.2013 21:12 kartka 1111111111 na sumu 24.72UAH。Dostupnyi zalyshok 1351.58UAH。

4

2 回答 2

3

如果您的价格的一般格式是 xxxx.xx,您可以使用:

"(?<!(?:\\d|\\.))\\d+\\.\\d{2}(?!\\.)"

至少它不会匹配日期。
(不要忘记转义,所以它不是通配符)

于 2013-04-05T13:47:57.050 回答
1
Pattern pattern = Pattern.compile(" \\d+\\.\\d\\d ");

这将在价格之前和之后寻找空格。

于 2013-04-05T13:49:42.013 回答