Django 用户认证 用户 邮箱登录 邮箱注册 ORM or,and,not form.py FORM ModelForm Paginator 分页 HTMl JQuery 定位元素 ajax django切片 restfulapi 跨域 Ubantu Python Mysql Scrapy 爬虫 导出 Python读写 Pycharm 破解 session re sqlit3 生成式 其他 Prism 富文本 CSS Nginx 部署 请求头 抓包 协议 selenium Ubuntu 宝塔 AI Comfy-ui ollama dify open-webui Git docker
re 正则表达式匹配规则
张建行 2020年9月29日 02:52 65 文章标签: Python re

import re

# 正则表达式:是对字符串的内容进行匹配查询的一种操作方式,通过预先定义的一些特殊字符的组合,形成一种字符串的匹配规则。再根据这些规则来对字符串中的某一些内容进行提取或者查找。
# 常用的正则表达式转义字符:
'''
\d:匹配一个数字
\w:用于匹配一个数字或者字母
.:可以匹配前面字符后面跟着的任意一个字符。a.:可以匹配到ab,ac,ad
*:可以匹配前面字符0个或者多个。a*:可以匹配到0个或者,aa,aaa,aaaa...,
?:可以匹配前面字符0个或者1个。a?:可以匹配到0个a,或者1个a
+:可以匹配前面字符任意多个,但是至少为1个,不能为0个。a+:a,aaaa,aaaaa;但是不能一个都匹配不到
^:表示必须以某某字符开头。^a:只能匹配到以a开头的字符。(a)
$:表示必须以某某字符结尾。a$:只能匹配到以a结尾的字符(a)
.*:这个组合表示任意字符出现0个或者多个,也称之为贪婪匹配模式,就是尽可能的匹配符合要求的最大值。a.*b:可以匹配到ab,acb,a1321313b,ajksdjfldsfjlsdb.
.*?:这个组合叫做非贪婪匹配模式,在能匹配成功的前提下,尽可能的少的匹配符合要求的字符。
.+:表示任意字符至少出现一次,不能为0次。a.+b:ab(匹配不到),acb,acdefb
|:用于设置不同情况的正则表达式,表示或者
'''
# 目标字符串:123456abcefg
# 1.创建正则表达式对象,compile():括号里面填写的字符串的匹配规则
# ()表示从目标字符串中提取的子串,一个()对应着一个分组信息。
pattern_obj = re.compile('(\d)(\w+)')
# 2.根据正则表达式对象,从目标字符串中进行匹配。
# match():第一个参数,正则表达式对象,第二个参数:目标字符串
res = re.match(pattern_obj, '123456abcefg')
print(res.group(1))
print(res.group(2))

pattern_obj = re.compile('(c.)')
res = re.match(pattern_obj, 'cbdefg')
print(res.group(1))

pattern_obj = re.compile('(a*)')
res = re.match(pattern_obj, 'aaabcdefg')
print(res.group(1))

pattern_obj = re.compile('(a?)')
res = re.match(pattern_obj, 'abcdefg')
print(res.group(1))

pattern_obj = re.compile('(a+)')
res = re.match(pattern_obj, 'aaabcdefg')
print(res.group(1))

pattern_obj = re.compile('(^ab)')
res = re.match(pattern_obj, 'abcdef')
print(res.group(1))

pattern_obj = re.compile('(a$)')
res = re.match(pattern_obj, 'a')
print(res.group(1))

pattern_obj = re.compile('(a.*b)')
res = re.match(pattern_obj, 'aljlkjjljljdebfkknkhkhkhlkb')
print(res.group(1))

pattern_obj = re.compile('(a.*?b)')
res = re.match(pattern_obj, 'aljlkjjljljdebfkknkhkhkhlkb')
print(res.group(1))

pattern_obj = re.compile('(a.+b)')
res = re.match(pattern_obj, 'acb')
print(res.group(1))

pattern_obj = re.compile('((heihei|haha)123)')
# heihei,haha,heihei123,haha123
res = re.match(pattern_obj, 'heihei123')
# res1=re.match(pattern_obj,'haha123')
print(res.group(1))
print(res.group(2))
# print(res1.group(1))
# print(res1.group(2))