JAVAは正規表現で文字列(ベース)を処理する
正規表現の内容はたくさんありますが、複雑なものを除いて、最も基本的なまとめは以下の点です.
1.中括弧は何が入っていても1文字を表す.
2.正規表現には、&と、|または、^非などの論理記号を用いることができる.
3.あとは数量詞で、1文字の後ろに置くと、?この文字が一度もない、あるいは一度もないことを表す、*は0額以上、+は1以上、{n}はn個あることを表す.
4.()グループ化用
次に、文字列を正規表現で処理します.
1.文字列のカット
ここでtestメソッドは次のとおりです.
2.文字列の置換
(1)文字列の5を#に置き換える
(2).重複する文字を1文字に置換
ここでtestメソッドは次のとおりです.
1.中括弧は何が入っていても1文字を表す.
2.正規表現には、&と、|または、^非などの論理記号を用いることができる.
3.あとは数量詞で、1文字の後ろに置くと、?この文字が一度もない、あるいは一度もないことを表す、*は0額以上、+は1以上、{n}はn個あることを表す.
4.()グループ化用
次に、文字列を正規表現で処理します.
1.文字列のカット
//
String str = "zhangsan,lisi,wangwu,mazi";
//
rex = ",";
// str
test(str, rex);
ここでtestメソッドは次のとおりです.
public static void test(String str,String rex){
//
String[] strs = str.split(rex);
//
for(String s:strs){
System.out.println(s);
}
}
2.文字列の置換
(1)文字列の5を#に置き換える
//5 #
str = "asdsad5dfsdf5asdvgnhg55hjmjh5";
rex = "5";
newstr = "#";
test(str, rex, newstr);
(2).重複する文字を1文字に置換
//
str = "qweqwdsdddsasdasqqqqqdsdsaqfdsddddd";
// , , (.)
rex = "(.)\\1+";
// ,$1
newstr = "$1";
test(str, rex, newstr);
}
ここでtestメソッドは次のとおりです.
/**
*
* @param str
* @param rex
* @param newstr
*/
public static void test(String str,String rex,String newstr){
// replace, replaceAll
String str2 = str.replaceAll(rex, newstr);
System.out.println(str2);
}