我想在字符串中找到价格值(传入短信息)。我正在使用java正则表达式:
Pattern pattern = Pattern.compile("\\d+.\\d\\d");/
但是这个表达式也找到了日期。例如,12.12.2013
会返回12.12
。
如果有某种方法只能找到价格值?也许不使用正则表达式,因为字符串不长。
EDITED 消息示例:
Oplata tovariv:S1LV0GRU RYKAVUCHKA 510,UA 02.04.2013 21:12 kartka 1111111111 na sumu 24.72UAH 。 Dostupnyi zalyshok 1351.58UAH。
答案 0 :(得分:3)
如果您的价格的一般格式是xxxx.xx,您可以使用:
"(?<!(?:\\d|\\.))\\d+\\.\\d{2}(?!\\.)"
至少它与日期不匹配 (不要忘记逃避这一点,因此它不是通配符)
答案 1 :(得分:1)
Pattern pattern = Pattern.compile(" \\d+\\.\\d\\d ");
这将在价格之前和之后寻找空格。