Skip to main content
 首页 » 编程设计

regex之Groovy 正则表达式模式匹配中是否存在命名组

2024年12月31日8powertoolsteam

就像是:

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

是否有允许这样的东西的常规语法(而不是我编造的虚构的 & 运算符?

请您参考如下方法:

假设您在 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