我有一个简单的正则表达式,例如
%(\d+)\$@[_a-zA-Z0-9]+@
Run Code Online (Sandbox Code Playgroud)
我不想写
Matcher m = Pattern.compile(myRegex).matcher(myText);
if (m.matches())
// do something with m.group(1);
Run Code Online (Sandbox Code Playgroud)
我真正想做的是拥有一个像这样的衬里
// do something with
Pattern.compile(myRegex).matcher(myText).match().group(1);
Run Code Online (Sandbox Code Playgroud)
你知道在 Java 中做到这一点的好方法吗(我正在使用 Java 7,但也许在 8 中发生了一些变化)?
从 Java 9 开始,您可以流式传输匹配结果并获取第一个结果的第一组:
String result = Pattern.compile(myRegex)
.matcher(myText)
.results()
.map(m -> m.group(1))
.findFirst()
.orElse(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2181 次 |
| 最近记录: |