正则表达式

所有的语言都是在它之上进行调用的。正则表达式与语言没关系。

import re

re.match():从头匹配

re.search():浏览全部字符串,匹配第一个符合规则的字符串

注意web框架里边很多用的都是match,search只找到第一个字符串,所以出现了一个findall()

所以以后用match和findall方法会比较多。findall():将匹配的所有东西都放在一个列表里面

以iter结尾的都是产生迭代的。

所有的方法在正则表达式中有两种方式,一种是简单匹配,一种是分层匹配。

match如果成功则返回对象,如果返回不成功则返回none.

origin="hello alex bcd alex lge alex acd 19"

r=re.match("h\w",origin)

注意对象里边有这三种方法,分别是group、groups、以及groupdict

print(r.group()):获取匹配到的所有结果

print(r.groups()):获取模型中匹配到的分组结果

print(r.groupdict()):获取模型中匹配到的分组结果。r=re.match("(?P<n1>h)(?P<n2>\w+)")

分组是去已经拿到的东西里边再做一次筛选。

DOTALL:匹配所有的字符。

VERBOSE:可以给正则表达式做注释。支持正则表达式的注释

注意match\search\findall

注意match与search的区别是:match是从头开始匹配,search是往后面逐一进行匹配。

findall():把所有匹配的东西放到一个列表里面去。

re.findall("\d+\w\d+","a2b3c4d5")

n=re.findall("(\d+)(\w)*(\d+)","a2b3c45")

print(n)

n=re.findall("","a2b3c4d5")

print(n)

 

posted @ 2017-02-23 16:41  关泉珍  阅读(40)  评论(0)    收藏  举报