正则表达式使用小结

在线测试工具

正则表达式语言由两种字符组成:原意文本字符和元字符。元字符使得表达式具有处理能力,如 [ ] ,*,^,\w 之类的。

简单的介绍下常见的几个:


1.针对但个字符匹配的元字符:

\x : 转义字符。将字符转义。比如 \b 就不是斜线 和字符b的意思了,而是元字符,代表单词边界的意义了。

.  :匹配除\n以外的任何字符。

[]  :匹配中括号中的其中一个字符。如[abc] ,[a-z],[^abc]

\d :匹配0-9的数字。

\w :匹配单个字符,字母数字或者下划线。[a-zA-Z0-9]

\s :匹配任意的空白字符。



2.针对字符串的限定符:

\b :单词边界。

$  :匹配以指定的字符串结尾。 如ab$。

^  :字符串必须以指定字符串开始。 "^hh"  :字符串必须以hh 开始。

*  :匹配零个到多个的字符。

?  :匹配零个到一个字符。

{}  :匹配多个字符。如 {n},{n,},{n ,m}

+  :匹配至少一个字符。


还有一个特殊的字符:

\  :转义字符,如果想是单纯的字符"\"和"w"使用,那么就得转义 :\\w


1.分割汉字

分割汉字 不能直接使用splite()方法分割汉字。

String res = "四川省成都市武侯区高升桥路2号-附3号";
		String strin = "";
		if (res.contains("路")) {
			int i = res.indexOf("路");
			strin = res.substring(0, i + 1);
		}

上面的例子是按“路分割,得到前面的字符串。

2.\(?0\d{2}[) -]?\d{8}

这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进行一些分析吧:首先是一个转义字符\(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)-空格中的一个,它出现1次或不出现(?),最后是8个数字(\d{8})。这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进行一些分析吧:首先是一个转义字符\(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)-空格中的一个,它出现1次或不出现(?),最后是8个数字(\d{8})。


注意:

1.对于中文字符的匹配是采用其对应的 Unicode 编码来匹配的,对于单个 Unicode 字符,如 \u4e00 表示汉字“一”, \u9fa5 表示汉字“龥”,在 Unicode 编码中这分别是所能表示的汉字的第一个和最后一个的 Unicode 编码,在 Unicode 编码中能表示 20901 个汉字。


你可能感兴趣的:(正则表达式)