在Groovy正则表达式模式匹配中是否有命名组?

就像是:

def match = "John 19" =~ /(&name&)\w+ (&age&\d+)/
def name = match.name
def age = match.age

有没有一个groovy语法允许这样的东西(而不是我构成的虚构和运算符?

解决方法

假设您在Java 7上使用,您可以执行以下操作:

def matcher = 'John 19' =~ /(?<name>\w+) (?<age>\d+)/
if( matcher.matches() ) {
  println "Matches"
  assert matcher.group( 'name' ) == 'John'
  assert matcher.group( 'age' ) == '19'
}
else {
  println "No Match"
}

如果你还不是java 7,那么你需要一个third party regex library

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...