java - 可以使用命名变量在 groovy 的闭包中打印命名组吗?

标签 java regex groovy closures

类似这段代码

请帮帮我

"56".replaceAll(/(?<name1>\d)(?<name2>\d)/){print name1}

最佳答案

你可以使用

"56".replaceAll(/(?<name1>\d)(?<name2>\d)/) {_, name1, name2 ->
      println name1
      println name2
}

输出:

5
6

参见 this Groovy demo

这里的重点是 Matcher 返回的匹配对象包含 3 个组,即它等于捕获组的数量和整个匹配本身作为组 0。因此,您应该提供所有 3 个到闭包参数,然后你可以打印任何你喜欢的。

关于java - 可以使用命名变量在 groovy 的闭包中打印命名组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49143408/

相关文章:

java - 如何在jni中链接静态库?

Java编译器找不到符号-同一包中的公共(public)类

java - 线程加入与 ExecutorService.awaitTermination

python - 在字符串中查找重复出现的模式

java - 是否可以在 sonarqube 的多模式项目中跳过 Java 插件

grails - JSON中的反向编码

java - 游程长度编码(输出数据中每个重复序列的长度以及数据值)

ios - 在NSPredicate和ISBN数字示例中使用正则表达式感到困惑

java - 文件名的正则表达式

java - 设置 Titan 和 Cassandra - 无法实例化存储管理器类