JAVA中正则表达式匹配,替换,查找,切割的方法
Stringstr;
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 Stringstr="publicstaticccvoidddmain";?
???//对表达式进分组重用?
???Stringragex1="(.)\\1+";?
???String[]ss=str.split(ragex1);
???for(Stringst:ss){
???System.out.println(st);?
???}
//按照两个cc+来截取
Stringragex="";?
??//切割?
???Stringstrs="publicstaticccvoidddmain";?
??Stringragexs="cc+";
??String[]s=strs.split(ragexs);
??for(StringSSSS:s){
??System.out.println(SSSS);
??}
??System.out.println("=-========="); ?
1 Strings=str.replaceAll(ragex,newstr); 字符串中的替换是replace();
将4个或4个以上的连续的数字替换成
?
1
2
3
4
5
6 //替换
???Stringstr="wei232123jin234";
???Stringragex="\\d{4,}";
???Stringnewstr="";
???Strings=str.replaceAll(ragex,newstr);
???System.out.println(s); ?
1
2
3
4
5 Stringstr="wwweiei222222jjjiiinnn1232";
???Stringragex="(.)\\1+";
???StringnewStr="";
???Strings=str.replaceAll(ragex,newStr);
???System.out.println(s);
将我...我...要..要.吃...吃...饭换成我要吃饭
?
1
2
3
4
5
6
7
8
9
10
11
12 Stringstr="我...我...要..要.吃...吃...饭";
??Stringregex="\\.+";
??StringnewStr="";
??str=test(str,regex,newStr);
??regex="(.)\\1+";
??newStr="$1";
??test(str,regex,newStr);
publicstaticStringtest(Stringstr,Stringregex,StringnewStr){
??Stringstr2=str.replaceAll(regex,newStr);
??System.out.println(str2);
??returnstr2;
?} 正则表达式的字符串的获取
1,根据定义的正则表达式创建Pattern对象
2,使用Pattern对象类匹配
3,判断是否为true
4,加入到组
例子;
?
1
2
3
4
5
6
7
8
9 Stringstr="publicstaticvoidmain(String[]args)"
????+"publicstaticvoidmain(String[]args)publicstaticvoidmain(String[]args)";
?Stringragex="\\b[a-zA-Z]{4,5}\\b";
?Patternp=Pattern.compile(ragex);
?Matcherm=p.matcher(str);
????while(m.find()){
????Strings=m.group();
????System.out.println(s);
????} 作业:
1,获取user中的user
?
1
2
3
4
5 Stringstr="user";
Stringregex="|";?
?StringnewStr="";?
Stringstr2=str.replaceAll(regex,newStr);
www.hunanwang.net(str2); 2,获取dhfjksaduirfn11@qq.comdsjhkfawang@163.comwokaz中的邮箱号码
?
1
2
3
4
5
6
7
8
9
10
11 Stringregex="";?
String[]strs=str.split(regex);
?for(Stringstr2:strs){
?StringragexDemo="[a-zA-Z0-9]([a-zA-Z0-9][-_]?[a-zA-Z0-9]+)"
?+"@([a-zA-Z0-9]+)\\.[a-zA-Z]+\\.?[a-zA-Z]{0,2}";
Patternp=Pattern.compile(ragexDemo);
Matcherm=p.matcher(str2);
while(m.find()){
www.visa158.com(m.group());
??}
?} 示例代码:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
3
importjava.util.ArrayList;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
??
publicclasstest{
??publicstaticvoidmain(String[]args){
????getStrings();//用正则表达式获取指定字符串内容中的指定内容
????System.out.println("");
????replace();//用正则表达式替换字符串内容
????System.out.println("");
????strSplit();//使用正则表达式切割字符串
????System.out.println("");
????strMatch();//字符串匹配
??}
??
??privatestaticvoidstrMatch(){
????Stringphone="13539770000";
????//检查phone是否是合格的手机号(标准:1开头,第二位为3,5,8,后9位为任意数字)
????System.out.println(phone+":"+phone.matches("1[358][0-9]{9,9}"));//true??
??????
????Stringstr="abcd12345efghijklmn";
????//检查str中间是否包含12345
????System.out.println(str+":"+str.matches("\\w+12345\\w+"));//true
????System.out.println(str+":"+str.matches("\\w+123456\\w+"));//false
??}
??
??privatestaticvoidstrSplit(){
????Stringstr="asfasf.sdfsaf.sdfsdfas.asdfasfdasfd.wrqwrwqer.asfsafasf.safgfdgdsg";
????String[]strs=str.split("\\.");
????for(Strings:strs){
??????System.out.println(s);
????}????
??}
??
??privatestaticvoidgetStrings(){
????Stringstr="rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf";
????Patternp=Pattern.compile("qq(.?)qq");
????Matcherm=p.matcher(str);
????ArrayListstrs=newArrayList();
????while(m.find()){
??????strs.add(m.group(1));??????
????}?
????for(Strings:strs){
??????System.out.println(s);
????}????
??}
??
??privatestaticvoidreplace(){
????Stringstr="asfas5fsaf5s4fs6af.sdaf.asf.wqre.qwr.fdsf.asf.asf.asf";
????//将字符串中的.替换成_,因为.是特殊字符,所以要用\.表达,又因为\是特殊字符,所以要用\\.来表达.
????str=str.replaceAll("\\.","_");
????System.out.println(str);????
??}
}
|
|