正则表达式
所有的语言都是在它之上进行调用的。正则表达式与语言没关系。
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)


浙公网安备 33010602011771号