Groovy で正規表現にマッチした箇所を抜き出すには? [groovy]
groovy で正規表現にマッチした箇所を抜き出すには次のように記述する。
matFile = (file =~ /^([0-9a-zA-Z\-]+) (.*).mp3/); if (matFile.matches()) { id = matFile[0][1] title = matFile[0][2] }
この場合、file が 「AAb-32D なんかのタイトル.mp3」であれば、
- id = AAb-32D
- title = なんかの タイトル
を取得できる。もし、file が 「日本語 なんかの たいとる.mp3」のときは、 正規表現にマッチしないため、id、title には設定されない。
id が英数字からなるものの 場合は [0-9a-zA-Z] とすれば良い。
先に示した正規表現では「~」 が先頭に付与されているので 「 AAb-32D たいとる.mp3」のように、先頭に空白など英数字(と「-」)以外の文字がある場合はマッチしない。