`

正则表达式笔记

    博客分类:
  • java
 
阅读更多
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
? 一次或一次也没有
 * 零次或多次
+ 一次或多次
{n}	恰好n次
{n,}至少 n 次
{n,m} 至少 n 次,但是不超过 m 次

[abc]	a、b 或 c(简单类)
[^abc]	任何字符,除了 a、b 或 c(否定)
[a-zA-Z]	a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]]	a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]	d、e 或 f(交集)
[a-z&&[^bc]]	a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]	a 到 z,而非 m 到 p:[a-lq-z](减去)

^	行的开头
$	行的结尾
\b	单词边界

.	任何字符(与行结束符可能匹配也可能不匹配)
\d	数字:[0-9]
\D	非数字: [^0-9]
\s	空白字符:[ \t\n\x0B\f\r]
\S	非空白字符:[^\s]
\w	单词字符:[a-zA-Z_0-9]
\W	非单词字符:[^\w]

\\	反斜线字符
 */

public class Regex {

	public static void main(String[] args){

		p("a".matches("."));//1个字符
		p("aa".matches("aa"));
		p("aaaa".matches("a*"));//0次或多次
		p("aaaa".matches("a+"));//1次或多次
		p("".matches("a*"));//0次或多次
		p("aa".matches("a?"));//1次或0次


		p("".matches("a?"));
		p("a".matches("a?"));
		p("1231231211212".matches("\\d{3,100}"));
		p("192.168.0.2".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
		p("392".matches("[0-2][0-9][0-9]"));


		p("a".matches("[abc]"));
		p("z".matches("[^abc]"));
		p("A".matches("[a-zA-Z]"));
		p("A".matches("[a-z]|[A-Z]"));
		p("A".matches("[a-z[A-Z]]"));
		p("12".matches("[0-9&&[1]]"));

		p(" \n\r\t".matches("\\s{4}"));
		p(" ".matches("\\s"));
		p("a_8".matches("\\w{3}"));
		p("abc88&^%".matches("[a-z]{1,3}\\d+[%^&^]+"));
		p("\\".matches("\\\\"));

		//0359-1234567  021-12345678
		p("0359-1234567".matches("^\\d{4}-\\d{7}$|^\\d{3}-\\d{8}$"));
		p("021-12345678".matches("\\d{4}-\\d{7}|\\d{3}-\\d{8}"));


		p("hello sir".matches("^h.*"));
		p("hello sir".matches(".*ir$"));
		p("hello sir".matches("^h[a-z]{1,3}o\\s[a-z]+$"));
		p("hellosir".matches("^h[a-z]{1,3}o\\b.*"));
		p("\n".matches("^[\\s&&[\\n]]*\\n$"));

		p("aaa 8888c".matches(".*\\d{4}."));
		p("aaa 8888c".matches(".*\\b\\d{4}."));
		p("aaa8888c".matches(".*\\d{4}."));
		p("aaa8888c".matches(".*\\b\\d{4}."));


		//abc@163.com
		p("abc@163.com".matches("^.+@.+\\..+$"));
                p("abc@163.com".matches("\\w[.-]+@\\w[.-]+\\.[\\w]+"));

		Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
		Matcher m = p.matcher("java Java JAVA javA Ilove JAVa you hate JavA ddddadf");

		StringBuffer buf = new StringBuffer();
		int i=0;
		while(m.find()){
			i++;
			if(i%2==0){
				m.appendReplacement(buf, "java");
			}else{
				m.appendReplacement(buf, "JAVA");
			}
		}

		m.appendTail(buf);
		p(buf);


		//分组
		Pattern p1 = Pattern.compile("(\\d{3,5})([a-z]{2})");
		String s = "321aa-11111bb-123cc-00";
		Matcher m1 = p1.matcher(s);
		while(m1.find()){
			//			p(m.group());
			p(m1.group(1));
			//			p(m.group(2));
		}
	}

	public static void p(Object s) {
		System.out.println(s);
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics