提取 (从本例所给完整路径中提取文件名)
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"