正则表达式的提取和替换

提取 (从本例所给完整路径中提取文件名)

import java.util.regex.*;
public class Zheng 
{ 
public static void main(String[] args) 
{ 
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);
	System.out.println(m.group(i)); //括号内匹配内容
} 
} 
}


分割:
import java.util.regex.*; 
public class Zheng
{ 
public static void main(String[] args) 
{ 
String regEx="::"; 
Pattern p=Pattern.compile(regEx); 
String[] r=p.split("xd::abc::cde"); 
for(int i=0;i<r.length;i++) 
{ 
System.out.println(r[i]); 
} 
} 
}



执行后,r就是{xd,abc,cde},其实分割时还有跟简单的方法:

String str="xd::abc::cde";

String[] r=str.split("::");


替换(删除)

import java.util.regex.*;
public class RegexExample1
{
public static void main(String[] args)
{
String regEx="a+";//表示一个或多个a
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher("aaabbced a ccdeaa");
String s=m.replaceAll("A");
System.out.println(s);
}
}

结果为"Abbced A ccdeA"

假如写成空串,既可达到删除的功能,比如:

String s=m.replaceAll("");

结果为"bbced ccde"

你可能感兴趣的:(java)