正则表达式——学习笔记

正则表达式

1类的命名:FooMeth()
方法的命名:say_hello()

match(A,B) 如果有匹配的结果,返回匹配对象,可以用group方法查看对象,如果没有匹配的结果,返回None

匹配字符
. 匹配任意一个字符,除了
d 匹配数字,0-9
D 匹配非数字
s 匹配空白字符 即空格,tab键
S 匹配非空白
w 匹配单词字符 a-z A-Z 0-9
W 匹配非单词字符
[] 匹配括号内的字符,[a-z0-9]
^ 取反,即非

匹配数量
* 0次或者无数次
+ 至少出现1次
? 匹配0次或者1次
{m} 匹配m次
{m,}匹配至少m次
{m,n}匹配出现m到n次

匹配边界
^ 匹配字符串开头
$ 匹配字符串结尾
 匹配一个单词的边界
B 匹配非单词的边界

手机号 "1[345678]d{9}$"

匹配分组
group(0) 展示完整的字符串
group(1) 展示第一个括号内的内容
group(2) 展示第二个括号内的内容
um 代表正则第num个括号内的内容

re.match("(<h1>).*(</h1>)","<h1>匹配分组</h1>")

re.match(r"<(.*)><(.*)>.*</2></1>","<html><title>测试内容</title></html>")

def sub_test():
s = "11111php222222php33333php"
result = re.sub("php","python",s)
print(result)
print(s)

s = "http://www.baidu.com/login?username=xxx"
result = re.sub("(http://.+?/).*",lambda x:x.group(1),s)
print(result)
贪婪和非贪婪模式
默认是贪婪模式 人性是贪婪的

原文地址:https://www.cnblogs.com/ClarenceSun/p/14534129.html