Java匹配正则表达式并提取组oneliner
我有一个简单的正则表达式,比如
%(\d+)\$@[_a-zA-Z0-9]+@
我不想写
Matcher m = Pattern.compile(myRegex).matcher(myText);
if (m.matches())
// do something with m.group(1);
我真正想做的是有一个像
// do something with
Pattern.compile(myRegex).matcher(myText).match().group(1);
您知道用Java实现这一点的好方法吗(我使用的是Java7,但可能在8中有所改变)
# 1 楼答案
创建静态匹配器:
并以这种方式使用它:
这是使用正则表达式最有效的方法(据我所知)
# 2 楼答案
从Java 9开始,您可以流式处理匹配结果并获取第一个结果的第一组: