括弧内の文字を取得する(正規表現)! Java超初心者の勉強

Javaで括弧内の文字を取得したかった時に調べた備忘録です。参考元のコピペです。
応用すれば角括弧やかぎ括弧などいろいろ使い回せそうです。

正規表現を使って取り出す

import java.util.regex.Pattern;
import java.util.regex.Matcher;

// 省略

String str= "Programmer (Life)";
Matcher m = Pattern.compile("\\((.*?)\\)").matcher(str);
while(m.find()) {
System.out.println(m.group(1)); // life
}

find()でMatcherの条件に一致する項目を一つずつ取り出します。groupは引数を0にすると「(life)」が取得できます。

上記の場合()が複数あっても値を取得できます。

String str= "Programmer (Life) and (one more)";
Matcher m = Pattern.compile("\((.*?)\)").matcher(str);
while(m.find()) {
System.out.println(m.group(1));
}

substring + indexOfで取り出す

String str = "Programmer (Life)";
String answer = str.substring(str.indexOf("(")+1,str.indexOf(")"));
System.out.println(answer);

この場合1つだけ()の中身を取得できます。

参考サイト:Pattern to extract text between parenthesis

Java

Posted by Nakamoto