top / index / prev / next / target / source
regex
による文字列処理のメモ日記形式でつづる いがぴょんコラム ウェブページです。
regex
による文字列処理のメモJava の正規表現 regex
による文字列処理のやり方をいつも忘れるのでこれをメモします。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class App {
public static void main(final String[] args) {
final Pattern pat = Pattern.compile("\\[.*?\\]");
final Matcher mat = pat.matcher("My [name] is [taro].");
for (; mat.find();) {
final String word = mat.group();
System.out.println("found:'" + word.substring(1, word.length() - 1) + "'");
}
}
}
実行結果は以下の通りです。
found:'name'
found:'taro'
上記ソースコードのポイントは以下です。
強欲マッチ
を避けるために ?
を利用しています。[xxx]
をおのおの処理することが可能になります。強欲マッチではない
ものでしょうから、この ?
は通常付与するものだと思い起こす必要がありそうです。[
を文字列として処理するために ¥ エスケープしています。今日は寒いです。東京都でも朝の気温は氷点下です。