java - java中的正则表达式,非捕获组

标签 java regex

假设我有以下代码:

Pattern pt = Pattern.compile("(?:h)?o");
Matcher m = pt.matcher("hours 123");
m.find();
System.out.println(m.group(0));

结果是

ho

在正则表达式中,我有一个非捕获 group (?:h) 。为什么这个组会被包含在最终结果中?我只想得到“o”。

最佳答案

你的积极回顾是错误的。应该是这样的:

(?<=h)o

欲了解更多信息,您可以阅读此页面: http://www.regular-expressions.info/lookaround.html

关于java - java中的正则表达式,非捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092647/

相关文章:

c# - 使用 linq 从正则表达式匹配中获取组名

java - 在android中将信息传递给异步方法的最佳方式是什么?

java - 获取自 EJB 以来的 RESTful 列表

java - 使用 google commons 创建集合实例的通用 vs 静态声明

python - 使用正则表达式跳过结果

regex - Bash RegEx Lookahead/Lookbehind CPU 信息

javascript - 如何在 Chrome 浏览器中禁用 Web 应用程序

java - PE header 要求

jquery - 学习正则表达式和 jquery - .match 返回什么?

c# - 我需要一些文本解析帮助(正则表达式/C#)