淘先锋技术网

首页 1 2 3 4 5 6 7

正则表达式(regular expression)

描述了一种字符串匹配的模式,可以用来检测一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的字符串。

1 匹配字符

	String str = "A";
	String regex = "[A-Z]";
	System.out.println(str.matches(regex));
	---------
	结果:true
	String str = "$%#";
		String regex = "[^0-9][^0-9][^0-9]";// "[^0-9]" ^的意思是不是0到9
		System.out.println(str.matches(regex));
		--------------
		结果:true

[0-9]:匹配0~9之间的任意一个字符

		String str = "A12";
		String regex = "[a-zA-Z][0-9][0-9]";
		System.out.println(str.matches(regex));

2 特殊符号

点(.)号:匹配除了"\n"之外的任何单个字符
数字字符\d:等价于[0-9]
非数字字符\D:等价于[ˆ0-9]
单词字符\w: 等价于[a-zA-Z0-9]
非单词字符\W: 等价于[ˆA-Za-z0-9_]
注意,用的时候要加一个,例如 String regex = “\d”;

3 匹配数量

正则表达式*号:匹配前面的子表达式零次或多次
正则表达式+号:匹配前面的子表达式一次或多次
正则表达式?号:匹配前面的子表达式零次或一次
正则表达式{n}:n是一个非负整数。匹配正好n次。
正则表达式{n,}:n是一个非负整数。匹配至少n次。
正则表达式{n,m}:n是一个非负整数。匹配至少n次,至多m次

4 逻辑

XY匹配

先匹配X再匹配Y,顺序匹配

		String str = "A1";
		String regex = "[A-Z][0-9]";//[A-Z]匹配A,[0-9]匹配1
		System.out.println(str.matches(regex));
		--------
		结果true

X|Y匹配

匹配X或者匹配Y,()括号表示一组

String gender = "保密";
	//	String regex = "[男][女]";// XY
		String regex2 = "[男]|[女]|(保密)";// X|Y
		System.out.println(gender.matches(regex2));
		-----------
		结果true