今天练习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=Pattern.compile(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"); } } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219771.html原文链接:https://javaforall.net
