java - 使用 Matcher.find() 时出现 IndexOutOfBoundsException

标签 java regex

这个 Java 程序在尝试调用 group(1) 时向我显示 IndexOutOfBoundsException。如果我用 0 替换 1 ,那么整行都会被打印出来。我该怎么办?

Pattern pattern = Pattern.compile("<abhi> abhinesh </abhi>");
Matcher matcher = pattern.matcher("<abhi> abhinesh </abhi>");
if (matcher.find())
    System.out.println(matcher.group(1));
else
    System.out.println("Not found");

最佳答案

索引从 0 开始,因此使用 matcher.group(0)

编辑:要匹配标记之间的文本,请使用此正则表达式 <abhi>(.*)<\\/abhi>

关于java - 使用 Matcher.find() 时出现 IndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24087556/

相关文章:

java - 莫基托。如何基于模拟对象作为参数返回 boolean 值?

java - Openshift jobssas 7 云正在制造 war ,但没有部署它

regex - 如何使用 Perl 获取数字的最后两位数字?

python - 来自标签内标签的 Beautifulsoup 文本

regex - Postgres 日期时间替换正则表达式

Java 正则表达式或 XML 解析器?

php - preg_match_all 不返回所有子模式

java - 为什么学生没有被编辑

java - Aries managed-service-factory 是否也管理属性?

java - 将字符串拆分为 2 个相同的单词