java正则表达式基础

来源:互联网 发布:tab在vb中什么意思 编辑:程序博客网 时间:2024/06/06 02:27
package com.zp.regex;


import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class PatternDemo {


public static void main(String[] args) {
// TODO Auto-generated method stub


Pattern p = Pattern.compile("abc");
Matcher m = p.matcher("aabc");
boolean b = m.matches();
System.out.println("是否匹配:"+b);

Matcher m2 = p.matcher("abc");//只含有abc
boolean b2 = m2.matches();
System.out.println("是否匹配:"+b2);
//句点符号 表示任意字符
Pattern p2 = Pattern.compile("t.n");
System.out.println("p2:"+p2.matcher("tan").matches());
//方括号 缩小范围匹配括号中的任意一个字符
Pattern p3 = Pattern.compile("t[abc]n");
System.out.println("p3:"+p3.matcher("tdn").matches());
//或符号 "|"
Pattern p4 = Pattern.compile("t(a|b|c|oo)n");
System.out.println("p4:"+p4.matcher("toon").matches());
//匹配行结束符$
Pattern p5 = Pattern.compile("t(a|b|c|oo)n$");
System.out.println("p5:"+p5.matcher("toon").matches());//true
//^匹配一行的开始
Pattern p6 = Pattern.compile("^t(a|b|c|oo)n$");
System.out.println("p6:"+p5.matcher("atoon").matches());//false
//*匹配0至多个在它之前的字符
Pattern p7 = Pattern.compile("zo*");
System.out.println("p7:"+p7.matcher("zoo").matches());
// /转义符 \\$表美元符号$
Pattern p8 = Pattern.compile("2\\$");
System.out.println("p8:"+p8.matcher("2$").matches());
// ()将 () 之间括起来的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域,这个元字符在字符串提取的时候非常有用。
Pattern p9 = Pattern.compile("(abc)*");
System.out.println("p9:"+p9.matcher("abcabcabc").matches());
// +匹配前面的子表达式一次或多次。例如正则表达式9+匹配9、99、999等
Pattern p10 = Pattern.compile("(abc)+");
System.out.println("p10:"+p10.matcher("").matches());
// ?匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。此元字符还有另外一个用途,就是表示非贪婪模式匹配,
Pattern p11 = Pattern.compile("(abc)?");
System.out.println("p11:"+p11.matcher("abcabc").matches());
//{n}匹配确定的 n 次。例如,“e{2}”不能匹配“bed”中的“d”,但是能匹配“seed”中的两个“e”。
Pattern p12 = Pattern.compile("(abc){3}");
System.out.println("p12:"+p12.matcher("abcabcabc").matches());
//{n,}至少匹配n次。例如,“e{2,}”不能匹配“bed”中的“e”,但能匹配“seeeeeeeed”中的所有“e”
Pattern p13 = Pattern.compile("(abc){3,}");
System.out.println("p13:"+p13.matcher("abcabc").matches());
//{n,m}最少匹配 n 次且最多匹配 m 次。“e{1,3}”将匹配“seeeeeeeed”中的前三个“e”。
Pattern p14 = Pattern.compile("(abc){2,4}");
System.out.println("p14:"+p14.matcher("abcabcabc").matches());
}


}
0 0