我想从字符串12345 Rial
中提取s
:
String regx= ".* (\\d*) Rial";
String s = "your balance is 12345 Rial your last"
Pattern pattern = Pattern.compile(regx);
Matcher matcher = pattern.matcher(s);
System.out.println(matcher.group(1));
但是抛出以下异常
java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Unknown Source)
at ir.dena.avl.server.util.modbus.ChargeMessage.getBalanceFromIranCell(ChargeMessage.java:95)
有人能指出原因吗?
答案 0 :(得分:1)
首先需要找到模式,然后才能使用它。您需要使用Matcher类中的find
或matches
个第一个方法来遍历字符串并获得匹配。
所以使用
...
if (matcher.find())
System.out.println(matcher.group(1));
或者如果你想确保整个字符串与正则表达式匹配
...
if (matcher.matches())
System.out.println(matcher.group(1));