JAVA正規表現4つのよく使われる機能


正規表現は文字列処理に強力な機能を持っています。sunはjdk 1.4でサポートを入れています。
以下は簡単に4つの常用機能を説明します。
クエリー:コードセグメント:
String str="abc efg ABC";
String regEx="a|f"; // a f
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean rs=m.find();
もしstrの中にregExがあるならば、rsはtrueで、さもなくばflasheです。検索時に大文字と小文字を無視したい場合は、Pattern p=Pattern.com mpile(regEx,Pattern.C.ASEgame)と書くことができます。
抽出:以下はコードセグメントです。
String regEx=".+/(.+)$";
String str="c:/dir1/dir2/name.txt";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean rs=m.find();
for(int i=1;i<=m.groupCount();i++){
System.out.println(m.group(i));
}
以上の実行結果はname.txtであり、抽出した文字列はm.group(i)に格納され、iの最大値はm.group Count()である。
分割:以下はコードセグメントです。
String regEx="::";
Pattern p=Pattern.compile(regEx);
String[] r=p.split("xd::abc::cde");
,r {"xd","abc","cde"}, :
String str="xd::abc::cde";
String[] r=str.split("::");
置換(削除):コードセグメントは以下の通りです。
String regEx="a+"; //       a
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher("aaabbced a ccdeaa");
String s=m.replaceAll("A");
結果として「Abced A cdeA」という文字が空の文字列で書かれていれば、削除の機能に達することができます。
String s=m.replaceAll("");
その結果、「bbced cdc」に添付されました。/Dなどは[^0-9]非数字/sなどで[/t/n/x 0 B/f]空白文字/Sなどで[^/t/n/x 0 B/f]非空白文字/wなどは、[a-zA-Zu 0-9]数字または英語文字/Wなどで、[a-zA-Zu 0-9]行ごとに数字とアルファベットの区切りを表します。