正则表达式使用步骤
"""
RE使用步驟:
1、使用compil將表示正則的字符串編譯為一個(gè)pattern對(duì)象
2、通過(guò)pattern對(duì)象提供一系列方法對(duì)文本進(jìn)行查找匹配結(jié)果,一個(gè)match對(duì)象
3、最后使用match對(duì)象提供的屬性和方法獲得信息,根據(jù)需要進(jìn)行操作
"""
import re
'''
# 查找數(shù)字
# r表示字符串不轉(zhuǎn)義
p = re.compile(r'\d+')
# 在字符串中進(jìn)行查找,按照規(guī)則p制定的正則進(jìn)行查找
# 返回結(jié)果None表示沒(méi)有找到,否則會(huì)返回match對(duì)象
m = p.match("one12twothree33456four78")
print(m)
'''
# 查找數(shù)字
# r表示字符串不轉(zhuǎn)義
"""
p = re.compile(r'\d+')
# 在字符串中進(jìn)行查找,按照規(guī)則p制定的正則進(jìn)行查找
# 返回結(jié)果None表示沒(méi)有找到,否則會(huì)返回match對(duì)象
# 參數(shù)3,6表示在字符串中查找范圍
m = p.match("one12twothree33456four78",3,6)
print(m)
"""
# 上述代碼說(shuō)明的問(wèn)題
# 1,match可以輸入?yún)?shù)表示起始位置
# 2。查找到的結(jié)果只包含一個(gè),表示第一個(gè)進(jìn)行匹配成功的內(nèi)容
# 分成兩組,組之間用空格分割
# I 表示忽略掉大小寫(xiě)
"""
p = re.compile(r'([a-z]+) ([a-z]+)',re.I)
m = p.match("I am really love wangxiaojing")
print(m)
print(m.start(0))
print(m.end(0))
print(m.group(0))
"""
# 查找
# - search(str,[,pos[,endpos]]):在字符串中查找匹配,pos和endpos表示起始位置
# findall:查找所有
# finditer:查找,返回一個(gè)iter結(jié)果
"""
p = re.compile(r'\d+')
m = p.search("one12two34three567four")
print(m.group())
rst = p.findall("one12two34three567four")
print(type(rst))
print(rst)
"""
# sub替換
# sub(rep1,str[,count])
"""
p = re.compile(r'(\w+) (\w+)')
s = "hello 123 wang 456 xiaojing, i love you"
rst = p.sub(r'Hello world',s)
print(rst)
"""
# 匹配中文
# 大部分中文內(nèi)容表示范圍是[u4e00-u9fa5],不包括全角標(biāo)點(diǎn)
"""
title = u'世界 你好,hello moto'
p = re.compile(r'[\u4e00-\u9fa5]+')
rst = p.findall(title)
print(rst)
"""
# 貪婪和非貪婪
# 貪婪:盡可能多的匹配,(*)表示貪婪匹配
# 非貪婪:找到符合條件的最小內(nèi)容即可,(?)表示非貪婪
# 正則默認(rèn)使用的是貪婪匹配
title = u'<div>name</div><div>age</div>'
p1 = re.compile(r"<div>.*</div>")
p2 = re.compile(r"<div>.*?</div>")
m1 = p1.search(title)
print(m1)
m2 = p2.search(title)
print(m2)
RE使用步驟:
1、使用compil將表示正則的字符串編譯為一個(gè)pattern對(duì)象
2、通過(guò)pattern對(duì)象提供一系列方法對(duì)文本進(jìn)行查找匹配結(jié)果,一個(gè)match對(duì)象
3、最后使用match對(duì)象提供的屬性和方法獲得信息,根據(jù)需要進(jìn)行操作
"""
import re
'''
# 查找數(shù)字
# r表示字符串不轉(zhuǎn)義
p = re.compile(r'\d+')
# 在字符串中進(jìn)行查找,按照規(guī)則p制定的正則進(jìn)行查找
# 返回結(jié)果None表示沒(méi)有找到,否則會(huì)返回match對(duì)象
m = p.match("one12twothree33456four78")
print(m)
'''
# 查找數(shù)字
# r表示字符串不轉(zhuǎn)義
"""
p = re.compile(r'\d+')
# 在字符串中進(jìn)行查找,按照規(guī)則p制定的正則進(jìn)行查找
# 返回結(jié)果None表示沒(méi)有找到,否則會(huì)返回match對(duì)象
# 參數(shù)3,6表示在字符串中查找范圍
m = p.match("one12twothree33456four78",3,6)
print(m)
"""
# 上述代碼說(shuō)明的問(wèn)題
# 1,match可以輸入?yún)?shù)表示起始位置
# 2。查找到的結(jié)果只包含一個(gè),表示第一個(gè)進(jìn)行匹配成功的內(nèi)容
# 分成兩組,組之間用空格分割
# I 表示忽略掉大小寫(xiě)
"""
p = re.compile(r'([a-z]+) ([a-z]+)',re.I)
m = p.match("I am really love wangxiaojing")
print(m)
print(m.start(0))
print(m.end(0))
print(m.group(0))
"""
# 查找
# - search(str,[,pos[,endpos]]):在字符串中查找匹配,pos和endpos表示起始位置
# findall:查找所有
# finditer:查找,返回一個(gè)iter結(jié)果
"""
p = re.compile(r'\d+')
m = p.search("one12two34three567four")
print(m.group())
rst = p.findall("one12two34three567four")
print(type(rst))
print(rst)
"""
# sub替換
# sub(rep1,str[,count])
"""
p = re.compile(r'(\w+) (\w+)')
s = "hello 123 wang 456 xiaojing, i love you"
rst = p.sub(r'Hello world',s)
print(rst)
"""
# 匹配中文
# 大部分中文內(nèi)容表示范圍是[u4e00-u9fa5],不包括全角標(biāo)點(diǎn)
"""
title = u'世界 你好,hello moto'
p = re.compile(r'[\u4e00-\u9fa5]+')
rst = p.findall(title)
print(rst)
"""
# 貪婪和非貪婪
# 貪婪:盡可能多的匹配,(*)表示貪婪匹配
# 非貪婪:找到符合條件的最小內(nèi)容即可,(?)表示非貪婪
# 正則默認(rèn)使用的是貪婪匹配
title = u'<div>name</div><div>age</div>'
p1 = re.compile(r"<div>.*</div>")
p2 = re.compile(r"<div>.*?</div>")
m1 = p1.search(title)
print(m1)
m2 = p2.search(title)
print(m2)
轉(zhuǎn)載于:https://www.cnblogs.com/jerryspace/p/9829060.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: MySQL 快速入门教程
- 下一篇: sonar搭建