正则表达式匹配,替换,查找,切割的方法
正则表达式的查找;主要是用到String类中的split():
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\.")按照.来截取
str.split(" ")按照空格截取
str.split("cc+")按照c字符来截取,2个c或以上
str.split((1)\.+)按照字符串中含有2个字符或以上的地方截取(1)表示分组为1
截取的例子:
按照分组截取;截取的位置在两个或两个以上的地方
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
String
str = "publicstaticccvoidddmain" ;
//对表达式进分组重用
String
ragex1= "(.)\1+" ;
String[]
ss = str.split(ragex1);
for (String
st:ss){
System.out.println(st);
}
//按照两个cc+来截取
String
ragex = "
" ;
//切割
String
strs = "publicstaticccvoidddmain" ;
String
ragexs = "cc+" ;
String[]
s = strs.split(ragexs);
for (String
SSSS :s){
System.out.println(SSSS);
}
System.out.println( "=-=========" );
|
正则表达式中的替换:
语法定义规则:
?1 |
String
s =str.replaceAll(ragex, newstr);
|
字符串中的替换是replace();
将4个或4个以上的连续的数字替换成*
?1 2 3 4 5 6 |
//
替换
String
str= "wei232123jin234" ;
String
ragex = "\d{4,}" ;
String
newstr = "*" ;
String
s =str.replaceAll(ragex, newstr);
System.out.println(s);
|
将重复的字符串换成一个*
?1 2 3 4 5 |
String
str = "wwweiei222222jjjiiinnn1232" ;
String
ragex = "(.)\1+" ;
String
newStr = "*" ;
String
s = str.replaceAll(ragex, newStr);
System.out.println(s);
|
将 我...我...要..要.吃...吃...饭 换成 我要吃饭
?1 2 3 4 5 6 7 8 9 10 11 12 |
String
str = "我...我...要..要.吃...吃...饭"
|