正则表达式 – 入门篇[转载]

在线测试正则表达式

http://regexr.com/是一个提供在线版的正则式编辑、学习、创建和测试的平台,帮助编程人员快速的编写正则表达式,内置多种转义字符,点击即可添加,同时还拥有在线保存和分享的功能。

1.元字符

模式 描述
. 匹配除结束符以外的任意字符,某些情况下不能匹配行起始符
^ 匹配行的开始, 例如 ^The 匹配以The打头的行
$ 匹配行的结束,例如 home$匹配以home结尾的行,^$匹配空行
? 匹配0或1个任意字符
* 匹配0到任意多个任意字符
+ 匹配1到任意多个任意字符
{ 量词起始符
} 量词结束符
[ 字符组的起始符
] 字符组的结束符
\ 转义字符
( 捕获分组的起始符
) 捕获分组的结束符
| 用或(or)的方法进行匹配

2. 常用例子

模式 描述
[] 字符组
() 用于捕获分组
{} 表示带查找的字符要重复的次数
{n,} 代表前面的字符可以重复n到无穷多次
{n1,n2} 代表前面的字符可以重复n1到n2次
[0-9] 字符组,匹配数字0-9
[^0-9] 字符组,对[0-9]取反,匹配非数字0-9的任意字符
[\+\-\*\-] 字符组,代表加减乘除号
\d 数字字符,匹配任意阿拉伯数字,等同于[0-9]
\D 非数字字符,匹配任何一个非数字字符,即\d 取反
\w 小写的\w 单词字符,匹配字母、数字、下划线,即[_a-zA-Z0-9]
\W 大写的\W 非单词字符,匹配非单词字符,即对小写\w取反,即[^_a-zA-Z0-9]
\a 警告声音输出
\b 退格符
\c x 控制符
\f 换页符
\t 垂直的制表符
\v 小写\v 水平的制表符
\V 大写\V 非水平制表符
\h 水平空白符
\H 非水平空白符
\r 回车符
\n 换行符
\0 空字符
\s 小写\s 匹配空白符,即,能匹配空格、制表符\t、换行符\n、回车符\r
\S 大写\S 匹配非空白符,即小写\s取反
\0 XXX 字符的八进制值
\x xx 字符的十六进制值
\u xxx 字符的Unicode值
(?i) 匹配模式时不区分大小写
(?i)the 匹配THE the The 等

3. 举例:捕获分组

将模式放入一对圆括号中,就是将它放进了分组,例如,(\d)\d

4. 举例:非捕获分组

非捕获分组(Non-capturing Group),不会将内容存储在内存中,因此该分组无法被引用,但也因此性能更好

5. 举例:后向引用

捕获分组后,后面可以用\1对捕获的内容进行后向引用,例如,(\d)\d\1,该模式可以匹配数字字符707,101,212, 505, 等等

例子: (?:the|THE|The)

6. 例子若干,自行体会,加强理解

\d+\.?\d* 匹配形如正整数、正小数的字符

\-?\d+\.?\d* 匹配形如正整数、负整数、正小数、负小数的字符

[^\d\+\-\*\/\(\)\.] 匹配这些字符以外的字符:数字字符、加减乘除号、正反括号、小数点

[\+\-\*\/\.]{2,} 匹配连续的加减乘除号、小数点

转载总结:正则表达式一直是编程人员的难点,需要不断的练习才能熟能生巧,转载这篇文章主要用于自己写正则时,有个类似代码字典的东西,增加写正则时的编程效率。没有全文转载,因为后面的太繁琐,还没达到这个境界!!

摘自:http://www.cnblogs.com/huamingao/p/6031411.html

扩展文档:菜鸟教程http://www.runoob.com/python/python-reg-expressions.html

未经允许不得转载:大数据分析师 » 正则表达式 – 入门篇[转载]

分享到:更多 ()