正则表达式在字符串处理上有着强大的功能
sun在jdk
加入了对它的支持
下面简单的说下它的种常用功能
查询
以下是代码片段
String str=abc efg ABC;
String regEx=a|f; //表示a或f
Pattern p=pile(regEx);
Matcher m=pmatcher(str);
boolean rs=mfind();
如果str中有regEx那么rs为true否则为flase如果想在查找时忽略大小写则可以写成Pattern p=pile(regExPatternCASE_INSENSITIVE);
提取
以下是代码片段
String regEx=+\(+)$;
String str=c:\dir\dir\nametxt;
Pattern p=pile(regEx);
Matcher m=pmatcher(str);
boolean rs=mfind();
for(int i=;i<=mgroupCount();i++){
Systemoutprintln(mgroup(i));
}
以上的执行结果为nametxt提取的字符串储存在mgroup(i)中其中i最大值为mgroupCount();
分割
以下是代码片段
String regEx=::;
Pattern p=pile(regEx);
String[] r=psplit(xd::abc::cde);
执行后r就是{xdabccde}其实分割时还有跟简单的方法
String str=xd::abc::cde;
String[] r=strsplit(::);
替换(删除)
以下是代码片段
String regEx=a+; //表示一个或多个a
Pattern p=pile(regEx);
Matcher m=pmatcher(aaabbced a ccdeaa);
String s=mreplaceAll(A);
结果为Abbced A ccdeA
如果写成空串既可达到删除的功能比如
String s=mreplaceAll();
结果为bbced ccde
附
\D 等于 [^] 非数字
\s 等于 [ \t\n\xB\f ] 空白字元
\S 等于 [^ \t\n\xB\f ] 非空白字元
\w 等于 [azAZ_] 数字或是英文字
\W 等于 [^azAZ_] 非数字与英文字
^ 表示每行的开头
$ 表示每行的结尾