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("\\[.*?\\]");
String currentString = "What is [your] name? My [name] is [taro].";
for (;;) {
final Matcher mat = pat.matcher(currentString);
if (mat.find() == false) {
break;
}
System.out.println("prev string:" + currentString.substring(0, mat.start()));
final String word = mat.group();
System.out.println(" found:" + word);
currentString = currentString.substring(mat.end());
System.out.println(" next string:'" + currentString + "'");
}
}
}
実行結果。
prev string:What is
found:[your]
next string:' name? My [name] is [taro].'
prev string: name? My
found:[name]
next string:' is [taro].'
prev string: is
found:[taro]
next string:'.'
逐次処理をおこないたい場合に、なんどか regex マッチしながら文字列処理していく例です。
今日も寒い。でも昼過ぎからは暖かくなりました。