python 2.7.3
正则表达式:根据自己的需要定义字符串,与其他的字符串做匹配,如网页数据提取:自定义一个规则将网页中的内容按自己的规则提取出需要的东西。
目前在python 中,正则的使用通过re模块来实现,help(re) 查看详细介绍.
可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、e-mail地址、TeX命令或任何你想搞定的东西。你也可以使用 RE 以各种方式来修改或分割字符串。正则表达式模式被编译成一系列的字节码,然後由用 C 编写的匹配引擎执行。在高级用法中,也许还要仔细留意引擎是如何执行给定 RE ,如何以特定方式编写 RE 以令生产的字节码运行速度更快。
############################ 元字符 ###########################
一:字符匹配
1.普通字符匹配
123和123匹配
2.元字符匹配(help(re)中有详细说明)
"." 表示任意字符
"^ " 表示字符串的起始、行首:>>>str=‘123,321,234,432,123‘
>>> ss=‘123‘
>>> re.findall(s,ss)
[‘123‘, ‘123‘]
>>>ss=‘^123‘
>>>re.findall(s,ss)
[‘123‘] #123是行首的那个
"$" 表示字符串的结束
>>>ss=‘123$‘ 将匹配最后的那个123
+ 表示匹配一或更多次
* 匹配0或更多次
? 表示匹配零次或一次-
*?, +?, ?? 符合条件的情况下,匹配的尽可能少//限制*,+,?匹配的贪婪性
{m} 匹配此前的字符,重复m次 如:r=‘010-\d{8}‘ 将表示010-后面需要8个0到9的数字
{m,n} m到n次,m,n可以省略
举个例子 ‘a.*b’ 表示a开始,b结束的任意字符串
a{5} 匹配连续5个a
[ ]
》 表示一系列字符 [abcd] 表a,b,c,d 注:ss = r‘a[bcd]ef‘ ,将表示ss=abef 或acef或adef
[0-9] 表示0到9 [a]
》 补集匹配不在区间内的字符:[^123] ,表示将匹配除了123的其它字符
| A|B 表示A或者B , AB为任意的正则表达式 另外|是非贪婪的如果A匹配,则不找B
(…) 这个括号的作用要结合实例才能理解, 用于提取信息
\d [0-9] 匹配任何十进制数 [0-9]
\D 非 \d 匹配任何非十进制数 [^0-9]
\s 表示空字符 [\t\n\r\f\v]
\S 非空字符 [^\t\n\r\f\v]
\w 匹配任何字母数字字符[a-zA-Z0-9_]
\W 非 \w
参考:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
################################################################################