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