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 Day
search 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 Day
match 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在工作需求中夺魁