res3 = re.search('h', url)print(res3)运行结果:
<re.Match object; span=(4, 5), match='h'>
re.sub re.sub(pattern, repl, string, count=0, flag)- 将表达式匹配到的部分替换为制定字符串 , 返回替换后的新字符串
pattern: 正则表达式
repl: 用来替换的字符串
string: 被匹配的字符串
count: 替换次数 , 默认为 0 , 表示全部替换
flags: 标志位 , 表示匹配模式
phone = '2004-959-559 # 这是一个国外电话号码'# 删除字符串中的python注释num = re.sub('#.*', '', phone)print(num)运行结果:2004-959-559
# 删除连接符号 -num = re.sub('-', '', num)print(num) 运行结果:2004959559
-
re.findall(pattern, string, flags=0- 在字符串中找到正则表达式匹配的所有子串 , 返回一个列表 , 匹配失败则返回空列表
pattern: 正则表达式
string: 被匹配的字符串
flags: 标志位 , 表示匹配模式
- 在字符串中找到正则表达式匹配的所有子串 , 返回一个列表 , 匹配失败则返回空列表
res1 = re.findall('day', line, re.I)res2 = re.search('day', line, re.I)res3 = re.match('day', line, re.I)print('findall', res1)print('search', res2.group())print('search', res3)运行结果:findall ['Day', 'day']search Daysearch None
-
match从头开始匹配 , 成功返回匹配对象 , 失败返回 None
-
search只匹配第一个 , 成功返回匹配对象 , 失败返回 None
-
findall匹配所有 , 成功返回所有匹配到的字符串组成的列表 , 失败返回空列表
re.compile(pattern, [flags])- compile 函数用于编译正则表达式 , 生成一个正则表达式对象 , 该对象调用 findall , search , match , sub 等方法
pattern: 正则表达式
flags: 标志位 , 表示匹配模式
面向对象编程时使用
- compile 函数用于编译正则表达式 , 生成一个正则表达式对象 , 该对象调用 findall , search , match , sub 等方法
attern = re.compile('day', re.I)res1 = pattern.findall(line)res2 = pattern.search(line)res3 = pattern.match(line)print('findall', res1)print('search', res2.group())print('match', res3)运行结果:findall ['Day', 'day']search Daymatch None
校验数字的表达式数字:^[0-9]*$n位的数字:^d{n}$至少n位的数字:^d{n,}$m-n位的数字:^d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$正数、负数、和小数:^(-|+)?d+(.d+)?$有两位小数的正实数:^[0-9]+(.[0-9]{2})?$有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$非零的正整数:^[1-9]d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$非零的负整数:^-[1-9][]0-9"*$ 或 ^-[1-9]d*$非负整数:^d+$ 或 ^[1-9]d*|0$非正整数:^-[1-9]d*|0$ 或 ^((-d+)|(0+))$非负浮点数:^d+(.d+)?$ 或 ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$非正浮点数:^((-d+(.d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$正浮点数:^[1-9]d*.d*|0.d*[1-9]d*$ 或 ^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$负浮点数:^-([1-9]d*.d*|0.d*[1-9]d*)$ 或 ^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$浮点数:^(-?d+)(.d+)?$ 或 ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ 校验字符的表达式汉字:^[u4e00-u9fa5]{0,}$
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 必吃!五大降脂明星食品
- 企业最需要什么样的Python工程师?了解一下!
- 比C语言还快20%!Mojo首个大模型开放下载,性能达Python版250倍
- OpenTelemetry入门看这一篇就够了
- 超越NumPy和Pandas:三个鲜为人知的Python库
- 五步让你掌握Python数据结构
- 挑战用 500 行 Python 写一个 C 编译器
- 带T的车开之前是否需要热车?一篇文章告诉你!
- 一篇文章告诉你,CG原画是什么?
- 2023年编程语言榜单,Python继续领跑!SQL在工作需求中夺魁
