简单的Java正则表达式匹配器不起作用
代码:
import java.util.regex.*;public class eq {
public static void main(String []args) {
String str1 = "some=String&Here&modelId=324";
Pattern rex = Pattern.compile(".*modelId=([0-9]+).*");
Matcher m = rex.matcher(str1);
System.out.println("id = " + m.group(1));
}
}
错误:
Exception in thread "main" java.lang.IllegalStateException: No match found我在这里做错了什么?
回答:
你需要调用find()的Matcher,然后才能调用group()和相关的功能,大约匹配的文本查询或操纵它(start(),end(),appendReplacement(StringBuffer
sb, String replacement)等)。
因此,在您的情况下:
if (m.find()) { System.out.println("id = " + m.group(1));
}
这将找到第 一个 匹配项(如果有),并提取由正则表达式匹配的第一个捕获组。如果要在输入字符串中查找所有匹配项,请更改if为while循环。
以上是 简单的Java正则表达式匹配器不起作用 的全部内容, 来源链接: utcz.com/qa/411501.html
