代码改变世界

python正则表达式

2008-10-22 21:55  ubunoon  阅读(1347)  评论(0编辑  收藏  举报
Python正则表达式,用re模块来实现,文档中英文部分关于正则表达式的说明不是很容易让人理解!

本以为看了手册上的正则表达式,再加上以前也略略看过perl的正则表达式,应该较快可以理解。

费解!

下面略略记录一下看过的笔记:

\ -- 转移字符用
^ -- 字符从头开始匹配
$ -- 字符结束
* -- 匹配0个或多个字符
+ -- 匹配1个或多个字符
?-- 匹配0个或1个字符
{m,n} -- 匹配m到n个字符,省略m表示m为0,省略n表示n为无穷
{m,n}? -- 匹配m到n个字符,尽可能少的匹配!
| -- 表示或的方式
. -- 匹配任意字符
\d -- 数字匹配
\D -- 非数字匹配    (Python用大写表示相反的情况,下面的\B、\S同)
\b -- 单词边界匹配
\B -- 非单词边界
\s -- 空字符匹配,空格、Tab键,Enter键
\S -- 非字符匹配
\w -- 数字和字符匹配和下划线
\W -- 非数字、字符和下划线匹配
\number -- 前面方式重复number次数匹配
[a-z] -- []表示匹配内部的任何一个字符,单个字符匹配,转移字符在[]内部不起作用,^在此处表示后面表示的相反情况
(x) -- 匹配的结果存储到group中,用返回结果groups()获取结果

\a \b \f \t \r \[ \] \n \v \x \( \) 用来匹配特殊字符

Python默认使用紧凑的正则表达式,可以使用宽松的正则表达式,这样更易维护与理解,忽略空格,换行,注释等内容,但在flags中需要注明为:re.VERBOSE.

如果pattern的表达式有错误,一般抛出re.error错误,当也有例外。如果没有匹配,那么返回None对象。

不清楚可以看divide into python和ubuntu中关于正则表达式的介绍。
下面为连接地址:

divide int python:
http://www.woodpecker.org.cn/diveintopython/regular_expressions/index.html#re.intro

ubuntu :
http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97