BluseLee 发表于 2024-6-2 23:31

Python学习笔记1:正则表达式

本帖最后由 苏紫方璇 于 2024-6-3 00:17 编辑

import re

'''
findall:匹配所有符合规律的内容,返回包含结果的列表
search:匹配并提取第一个符合规则的内容,返回一个正则表达式对象
sub:替换符合规则的内容,返回替换后的值
'''

# (1).的使用
a = 'asddfs123456'
b1 = re.findall('s.', a)
print(b1)# ['sd', 's1']
b2 = re.findall('s..', a)
print(b2)# ['sdd', 's12']

# (2)*的使用
a = 'asddfs123456'
b = re.findall('s*', a)
print(b)# ['', 's', '', '', '', 's', '', '', '', '', '', '', '']

# (3)?的使用
a = 'xy123xefaf'
b = re.findall('x?', a)
print(b)# ['x', '', '', '', '', 'x', '', '', '', '', '']

# (4)#.*的使用
s0 = 'fdhofdxxHELLOxx9897897gdsfdxxMYxxieigidjixxPYTHONxxefesfd'
b = re.findall('xx.*xx', s0)# 能找多长找多长
print(b)# ['xxHELLOxx9897897gdsfdxxMYxxieigidjixxPYTHONxx']
c = re.findall('xx.*?xx', s0)# 最短,切分
print(c)# ['xxHELLOxx', 'xxMYxx', 'xxPYTHONxx']

# (5)使用括号与不使用括号的区别
s1 = 'fdhofdxxHELLOxx9897897gdsfdxxMYxxieigidjixxPYTHONxxefesfd'
d = re.findall('xx(.*?)xx', s1)
print(d)# ['HELLO', 'MY', 'PYTHON']
for each in d:
    print(each)

# (6)re.S 的功能,包含换行符\n
s = '''dfsfdsafdxxHELLO
xxuuuuuuuuuxxPYTHONxxasdf'''
a = re.findall('xx(.*?)xx', s)
print(a)# ['uuuuuuuuu'],不能包括换行匹配
d = re.findall('xx(.*?)xx', s, re.S)
print(d)# ['HELLO\n', 'PYTHON'],包括了换行匹配

# (7) findall与search的区别
s2 = 'fdhofdxxHELLOxx123xxPYTHONxxieigidj'
f1 = re.search('xx(.*?)xx123xx(.*?)xx', s2).group(1)
print(f1)# HELLO
f2 = re.search('xx(.*?)xx123xx(.*?)xx', s2).group(2)
print(f2)# PYTHON
f3 = re.search('xx(.*?)xx123xx(.*?)xx', s2)
print(f3.group(1))# HELLO
print(f3.group(2))# PYTHON

f4 = re.findall('xx(.*?)xx123xx(.*?)xx', s2)
print(f4)# [('HELLO', 'PYTHON')]
print(f4)# ('HELLO', 'PYTHON')
print(f4)# HELLO
print(f4)# PYTHON

# (8)sub的使用,先匹配再替换
s3 = 'uuuuuu123abcssfasdfas123uuuuuu'
g = re.sub('123(.*?)123', 'HELLO MY PYTHON!', s3)
print(g)# uuuuuuHELLO MY PYTHON!uuuuuu

苏紫方璇 发表于 2024-6-3 00:16

插入代码方法
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)

hopecolor514 发表于 2024-6-3 05:12

谢谢大佬,以前学过几次正则表达式,一直没有搞明白

gooderduck1130 发表于 2024-6-3 07:05

好东西 感谢分享

zhcj66 发表于 2024-6-3 08:31

感谢分享 不经常用总是会忘

evill 发表于 2024-6-3 08:54

正则是个好工具,不常用的话经常会忘记,感觉可以弄几个常用的模板,需要用的时候临时看看借鉴一下,常用的就不用说了

sunflash 发表于 2024-6-3 08:59

从零开始学python,正则就是记不住

无知灰灰 发表于 2024-6-3 09:33

本帖最后由 无知灰灰 于 2024-6-3 09:34 编辑

现在感觉这些都不用学,学学基础的。。。然后具体 的,直接AI帮写就行了,效率又高,而且代码也比新手写的好的多。。

比如周六我准备写个抖音无水印下载的,直接全让AI帮写,有些地方我写的话,肯定没AI写的那么简洁。。。

而且还有容错报错机制,我一般都不会写。。。

RangerRafael 发表于 2024-6-3 10:00

感谢大佬!初学python,正则表达式是非常重要的部分。

MrQuinn 发表于 2024-6-3 11:33

正则我就没记全过{:1_909:}都是用到的时候直接ctrl+C & ctrl+V......话说,用AI帮忙确实简单很多{:1_889:}
页: [1] 2
查看完整版本: Python学习笔记1:正则表达式