今天练习java比赛题时,忘记了java的正则表达式怎么用,特地查了一下。觉得用好正则表达式真的是能有意想不到的效果。
Talk is cheap,show you their code
//解释内容见注释
import java.util.regex.Matcher;import java.util.regex.Pattern;public class java正则表达式 {public static void main(String[] args) {//1.字符串与正则表达式直接匹配//字符串String s1="hello",s2="world",s3="alanqiao";//正则表达式String pattern="[^(a|e|o|u)]+[a|e|o|u]+[^(a|e|o|u)]+[a|e|o|u]+";System.out.println("字符串"+s3+"与模式"+pattern+"是否匹配?"+Pattern.matches(pattern, s3));System.out.println("----------------");//2.正则表达式的捕获组//正则表达式加上了括号,一个括号一组String patt="([^(a|e|o|u)]+)([a|e|o|u]+)([^(a|e|o|u)]+)([a|e|o|u]+)";Pattern p=pile(patt);Matcher m=p.matcher(s3);//打印捕获组的数量System.out.println("count="+m.groupCount());if (m.find( )) {//注:下标为0的捕获组是完整的匹配字符串for(int i=0;i<=m.groupCount();i++) {//打印捕获组在字符串中的下标System.out.println("start="+m.start(i));//打印捕获组System.out.println("匹配串:"+m.group(i));System.out.println();}} else {System.out.println("NO MATCH");}}}