简单的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));

}

这将找到第 一个 匹配项(如果有),并提取由正则表达式匹配的第一个捕获组。如果要在输入字符串中查找所有匹配项,请更改ifwhile循环。

以上是 简单的Java正则表达式匹配器不起作用 的全部内容, 来源链接: utcz.com/qa/411501.html

回到顶部