在开发中,正则表达式有很大的用途的,现在说说它最基本的4个常用的功能:
查询、提取、分割、替换,用代码说话,看看就明白了
package com.sucre.blog; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正则表达式的常用功能测试 * @author sucre * */ public class RegularExpressions { /** * 查询str中是否有regEx,有rs为true,否则为flase * @return */ private static void searchCharacter(){ String str="sucre blog 51CTO.COM"; String regEx="c|l"; //表示a或f Pattern p=Pattern.compile(regEx); //这种写法是忽略大小写的 //Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE); Matcher m=p.matcher(str); boolean rs=m.find(); System.out.println(rs); } /** * 提取字符串 * 结果为name.txt,提取的字符串储存在m.group(i)中,其中i最大值为m.groupCount(); */ private static void extraction(){ String regEx = "(.+)$"; String str="c:\\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.group(i)); } } /** * 分割字符串 * */ private static void segmentation(){ String regEx="::"; Pattern p=Pattern.compile(regEx); String[] r=p.split("sucre::blog::51cto"); for (int i = 0; i < r.length; i++) { System.out.println(r[i]); } } /** * 替换字符 * */ private static void replace(){ 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); } public static void main(String[] args) { searchCharacter(); extraction(); segmentation(); replace(); } }
运行结果为
true c:\name.txt sucre blog 51cto Abbced A ccdeA
许多复杂的功能都是在这些简单功能的基础上构建起来的,基础很重要。
本文出自 “乔磊的博客 学习 进步” 博客,请务必保留此出处http://sucre.blog.51cto.com/1084905/416198