正则表达式——学习笔记

正则表达式

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

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

匹配字符
. 匹配任意一个字符,除了\n
\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 匹配一个单词的边界
\B 匹配非单词的边界

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

匹配分组
group(0) 展示完整的字符串
group(1) 展示第一个括号内的内容
group(2) 展示第二个括号内的内容
\num 代表正则第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)
贪婪和非贪婪模式
默认是贪婪模式 人性是贪婪的

 

posted on 2021-03-14 20:59  ClarenceSun  阅读(37)  评论(0编辑  收藏  举报

导航