正则表达式-基础篇

人类的常规表达方式在文本查找和处理方面是薄弱的,特别是一些复杂的文本处理。这时候有人发明了正则表达式这一非常规表达方式进行复杂的文本处理。如果你不是很懂正则,那么你一定不是一个合格的程序员,甚至不如一个很会处理文档办公室文员(当然了,现在很少有人会在乎这一点。但我们自己还是要有点追求,书到用时方恨少,正则需要用的地方还是非常多的,甚至常规的word和excel都有该功能)。

下面介绍一下正则的一些常用的元字符和用法:

1、...|... 指明两项之间的一个选择(或)

2、 . 匹配除换行符 \n之外的任何单字符。

3、^... 开头标记符(Start of String)

4、 ...$ 结尾标记符(End of String)

5、[...] 方括号(自定义的字符组,里面是需要匹配的字符,只能匹配其中的一个字符)(注:[^aeiou] 匹配除了aeiou这几个字母以外的任意一个字符,^在[]中代表“非”的意思)

6、...{..} 花括号(里面是匹配字符的个数).such as, {3}:Exactly 3; {3,}:3 or more; {3,5}:3 or 4 or 5

 ...{n} 前面的字符或表达式出现n次;
...{n,} 前面的字符或表达式出现n次或更多次;
...{n,m} 前面的字符或表达式出现n到m次(m 大于 n)

7、(...) 圆括号(标记一个子表达式的开始和结束位置)

8、...* (0 or more) 前面的字符或表达式出现0次或多次

9、...+ (1 or more) 前面的字符或表达式出现1次或多次

10、...? (0 or 1) 前面的字符或表达式出现0次或1次

11、  \ 转义字符 (escape character),需要匹配正则中元字符时就需要使用转义字符进行转义声明

12、\w 匹配任何单词字符(字母、数字、下划线)。与“[A-Za-z0-9_]”等效。(.net下甚至可以匹配汉字)

       \W 与任何非单词字符匹配(与\\w相反)。与“[^A-Za-z0-9_]”等效。

13、\s 匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。

       \S 匹配任何非空白字符。与 [^\f\n\r\t\v] 等效。(与\s相反)

14、\d 匹配数字字符。等效于 [0-9]。

       \D 非数字字符匹配。等效于 [^0-9]。(与\d相反)

15、\b 匹配单词的开始或结束。也就是单词的分界处。(它只匹配一个位置,不匹配任何字符)

       \B 匹配不是单词开头或结束的位置。(与\b相反)

16、(?i)... 表示后面的正则匹配是忽略大小写

17、(?s)...表示改变后面正则中的.的含义,使它与每一个字符匹配(包括换行符\n)

18、正则默认是贪婪匹配,就是要尽可能去匹配最多的字符数。可以通过在量词(+、?、*、{n,m})后面直接加上一个?,就是非贪婪模式(匹配最少的字符数)

参考该文章,正则在于日常的多使用。

猜你喜欢

转载自blog.csdn.net/wangpeng322/article/details/81606562