百木园-与人分享,
就是让自己快乐。

python正则表达式助你通透理解

**`import re
str1 = ‘1dw2f5cgf’
r = re.match(’\\d’,str1) # 从str1的第一个字符开始匹配一个数字
print®
str1 = ‘sdwf4cgf’
r = re.search(’\\d’,str1) # 从str1中匹配一个数字
print®

match或search经常用来判断某个字符串是否符合某个正则表达式。

str1 = ‘1dw2f5cgf’
r = re.match(’\\d’,str1)
if r:
s = r.group() # 获取匹配到的字符串
print(s)
str1 = ‘wedw2f5cgf’
r = re.search(’\\d+’,str1)
if r:
s = r.group() # 获取匹配到的字符串
print(s)
str1 = ‘wedw256+f5cgf’
r = re.search(’[0-9]+’,str1)
print®
if r:
s = r.group() # 获取匹配到的字符串
print(s)

使用正则判断字符串是否一个ip地址

ip = ‘255.168.99.002’
r = re.match(’^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?).){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)KaTeX parse error: Undefined control sequence: \\d at position 44: …配250-255 2[0-4]\\̲d̲:匹配200-249 [01]…:规定字符串的一开始到结束都必须符合整个正则表达式
“”\"
if r:
print(’%s合法ip’%ip)
else:
print(’%s非合法ip’ % ip)
print(’%s非法ip’ % ip)

compile(),编译正则

reg = re.compile(’[!.,]’) # 匹配!.,中的任意一个字符的正则表达式,表达式赋值给reg
print®
str2 = ‘sdf**.!s.dg’
r = reg.search(str2)
print®
reg = re.compile(’[Pp]ython’) # 匹配Python或python的正则表达式,表达式赋值给reg
print®
str2 = ‘sdfsdpythonse’
r = reg.search(str2)
print®
print(r.group())

findall(),查找符合正则表达式所有字符串

str1 = ‘sd3qw45rdg356hyr’
list1 = re.findall(’\\d+’,str1) #匹配出字符串str1中的所有数字(可以单个,可以多个)
print(list1)
str1 = ‘sd3qw45rd-34g356h-3467yr’
list1 = re.findall(’\\d+|-\\d+’,str1) #匹配出字符串str1中的所有数字(正数或负数)(可以单个,可以多个)
print(list1)
str1 = ‘sd3q5rd-34g3@@@6h-34!!!7yr’
list1 = re.findall(’[@!]+’,str1) #匹配出字符串str1中的所有@!(可以单个,可以多个)
print(list1)
str1 = \'sd3q
5rd-34g3@@@6h-34!!!7yr’
list1 = re.findall(’[.]+’,str1) #匹配出字符串str1中的所有. 匹配不到返回空列表
print(list1)

(.+?):匹配两个字符串中间的字符串

str1 = \'sd3q5rd-34g3@@@6h-34!!!7yr’
list1= re.findall(‘q**(.+?)-34g’,str1) #匹配左边是q
,右边是-34g的字符串(q**和-34g中间的字符串)
print(list1)
str1 = ‘sd3qdf67kysrdf23kyuyr’
list1= re.findall(‘qdf(.+?)ky’,str1) #匹配qdf和ky中间的字符串)
print(list1)

sub():按照正则表达式替换字符串

str1 = ‘sd3qdf67kysrdf23kyuyr’
new_str = re.sub(’\\d+’,’’,str1) # 将str1中的数字替换为
print(new_str)

sub():按照正则表达式替换字符串

str1 = ‘sd3qdf67kysrdf23kyuyr’
new_str = re.sub(’[sdk]’,‘A’,str1) # 将str1中的s或d或k替换为A
print(new_str)
#split():按照正则分割字符串
str1 = ‘sd3qdf67kys%rdf23@kyuyr’
new_str = re.split(’\\w+’,str1) # 将str1以数字或英文字符分割
print(new_str)
#split():按照正则分割字符串
str1 = ‘sd3qdf67kys%rdf23@kyuyr’
new_str = re.split(’\\D+’,str1) # 将str1以非数字分割
print(new_str)
str1 = ‘sd3qdf67kys%rdf23@kyuyr’
new_str = re.split(’[%@]’,str1) # 将str1以或%或@分割
print(new_str)
#“I am tom”用正则转为[‘mot’,‘ma’,‘I’,]
str1 = “I am tom”
s = str1[::-1]
print(s)

list1 = re.split(’[ ]’,str1) # 匹配空格,分割字符串s

list1 = re.split(’[^a-zA-Z]’,str1) # 匹配非a-zA-Z的字符,分割字符串s [^0-9]:匹配的是非数字
print(list1)``python
在这里插入代码片**

加粗样式

来源:https://blog.csdn.net/m0_65472085/article/details/123241260
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » python正则表达式助你通透理解

相关推荐

  • 暂无文章