24

何かのようなもの:

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

このようなことを可能にするグルーヴィーな構文はありますか (&私が作成した架空の演算子の代わりに?

4

3 に答える 3

41

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 を使用していない場合は、サード パーティの正規表現ライブラリが必要です。

于 2013-03-27T16:59:21.820 に答える