码迷,mamicode.com
首页 > 编程语言 > 详细

python与正则表达式

时间:2016-11-04 20:38:31      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:元字符   取反   多个   文本   txt   表达式   识别   重复   减法   

一、正则表达式 - 入门篇

1.元字符,及其常用例子
.  匹配除结束符以外的任意字符,某些情况下不能匹配行起始符

^    匹配行的开始

^The  匹配以The打头的行

$    匹配行的结束

home$ 匹配以home结尾的行

^$   匹配空行

?  匹配0或1个任意字符

*  匹配0到任意多个任意字符

+  匹配1到任意多个任意字符

{}  表示带查找的字符要重复的次数

{   量词起始符

}   量词结束符

{n,}  代表前面的字符可以重复n到无穷多次

{n1,n2}  代表前面的字符可以重复n1到n2次

[    字符组的起始符

]    字符组的结束符

[0-9]  字符组,匹配数字0-9

[^0-9]  字符组,对[0-9]取反,匹配非数字0-9的任意字符

\    转义字符

[\+\-\*\-]  字符组,代表加减乘除号

()  用于捕获分组

(  捕获分组的起始符

)  捕获分组的结束符

|  用或(or)的方法进行匹配

\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值

 

2. 举例:捕获分组

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

 

4. 举例:后向引用

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

 

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

\d+\.?\d* 匹配形如正整数、正小数的字符
\-?\d+\.?\d* 匹配形如正整数、负整数、正小数、负小数的字符
[^\d\+\-\*\/\(\)\.] 匹配这些字符以外的字符:数字字符、加减乘除号、正反括号、小数点
[\+\-\*\/\.]{2,} 匹配连续的加减乘除号、小数点
[^\(\)]*\([^\(\)]+\)[^\(\)]* 匹配配对的括号
\(([\+\-\*\/]*\d+\.?\d*)+\) 匹配最内层括号
(.*)(\d+\.?\d*)([\*\/])(\d+\.?\d*)(.*) 匹配乘除法表达式
(\-?\d+\.?\d*)([\+\-])(\-?\d+\.?\d*)(.*) 匹配加减法表达式

 

二、正则表达式 - 进阶篇

1.使用正在表达式为纯文本标签HTML5标签

例如,sed -n ‘s/^/<h1>/;s/$/</h1>/p;q‘ rime.txt

rime.txt中的文字将以h1格式(即所有字母大写)输出

 

2. 边界

断言,又称零宽度断言(zero-width assertion),用于标记边界,但不耗用边界上的字符,即字符不会返回到匹配结果中。零宽度断言不匹配字符,而是匹配字符串中的位置。例如^ $,也叫作锚位符(anchor)

^  匹配行的开始

$  匹配行的结束

\b  匹配单词边界,表面上会匹配空格或起始行,实际匹配的是零宽度的不存在的东西

\B  匹配非单词边界,即\b 取反,例如,\Be\B 不会匹配字母e两边的字符,但会识别e两边是否是非单词边界(即,用于标记边界,但不会将边界返回到匹配结果中)

可以用\Q和\E之间的字符集,匹配字符串的字面值。例如\Q$\E,会匹配$,而非行结束符,因为\Q和\E之间的任意字符都会被解释为普通字符。

 

 二、python中的re模块

python与正则表达式

标签:元字符   取反   多个   文本   txt   表达式   识别   重复   减法   

原文地址:http://www.cnblogs.com/huamingao/p/6031411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!