十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Python如何使用RegEx模块处理正则表达式?针对这个问题,今天小编总结这篇有关RegEx模块的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。
创新互联建站长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为中站企业提供专业的成都做网站、网站制作,中站网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。RegEx或正则表达式是形成搜索模式的字符序列
RegEx可用于检查字符串是否包含指定的搜索模式
RegEx模块
python提供名为 re 的内置包,可用于处理正则表达式。
导入re模块
import re
导入RegEx模块后,就可以使用正则表达式了:
实例
检索字符串以查看它是否以“China”开头并以“county”结尾:
import re
txt = "China is a great country"
x = re.search("^China.*country$", txt)
if(x):
print("YES! We have a match")
else:
print("No match");
RegEx函数
re模块提供了一组函数,允许我们检索字符串以进行匹配:
findall()
返回包含所有匹配项的列表
实例:
打印所有匹配的列表:
import re
str = "China is a great country"
x = re.findall("a", str)
print(x)
这个列表以被找到的顺序包含匹配项。
如果未找到匹配项,返回空列表:
import re
str = "I want to go to school"
x = re.findall("KK", str)
print(x)
search()
如果字符串中的任意位置存在匹配,则返回Match对象
如果有多个匹配,则返回首个匹配项
search()函数搜索
import re
str = "I want to go to school"
x = re.search("\s", str)#返回字符串包含空白字符的匹配项
print("The first white-space character is located in position:", x.start())
如果未找到匹配,返回值None:
import re
str = "China is a great country"
x = re.search("English", str)
print(x)
finditer()
和findall类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回
import re
str = re.finditer(r"\d+","I18 want15 to13 go15 to school")#\d返回的是数字
for match in str:
print(match.group())
split()
返回一个列表,其中字符串在每次匹配时被拆分
实例:在每个空白字符处进行拆分
import re
str = "I want to go to school"
x = re.split("\s", str)
print(x)
可以通过指定maxsplit参数来控制出现次数:
实例
仅在首次出现时拆分字符串:
import re
str = "I want to go to school"
x = re.split("\s", str, 1)
print(x)
sub()
re.sub(pattern, repl, string, count=0, flags=0)
用字符串替换一个或多个匹配项,就是把匹配替换为所选文本
实例
用数字8替换每个空白字符
import re
str = "I want to go to school"
x = re.sub("\s", "8", str)
print(x)
通过count 参数来控制替换次数
import re
str = "I want to go to school"
x = re.sub("\s", "8", str, 2)#只将两个空白符换为8
print(x)
Match对象
Match 对象是包含有关搜索和结果信息的对象
注释:如果没有匹配,返回值None,而不是Match对象
import re
str = "I want to go to school"
x = re.search("a", str)
print(x)#打印一个对象
Match()对象提供了用于取回有关搜索及结果信息的属性和方法:
span()返回的元组包含了匹配的开始和结束位置
string()返回传入函数的字符串
group()返回匹配的字符串部分,group也包含三个部分
start()返回匹配开始的位置
end()返回匹配结束的位置
span()返回一个元组包含匹配(开始,结束)的位置
实例
打印首个匹配出现的位置(start, end)
正则表达式查找以大写“W”开头的任何单词:
import re
str = "I Want to go to school"
x = re.search(r"\bW\w+", str)#\b是返回指定字符位于单词的开头或末尾的匹配项
print(x.span())郑州妇科医院哪家好 https://yiyuan.120ask.com/zzfck/
实例
打印传入函数的字符串:
import re
str = ""I Want to go to school"
x = re.search(r"\bW\w+", str)
print(x.string)
实例
打印匹配的字符串部分
正则表达式查找以写“W”开头的任何单词
import re
str = "I Want to go to school, the World is so quite"
x = re.search(r"\bW\w+", str)
print(x.group)
如果没有匹配项,则返回值None,而不是Match对象
compile函数
compile函数用于编译正则表达式,生成一个正则表达式(pattern)对象,供match()和search()这两个函数使用。
import re
pattern = re.compile(r'\d+')
str = pattern.match("24Kobe Jodan23")#match查找头部
print(str)
str1 = pattern.search("Jodan23")
print(str1)
re.match 与 re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,知道找到一个匹配。
import re
str = "I want to go to school"
matchobj = re.match(r"to", str)
if matchobj:
print ("match --> matchobj.group() : ", matchobj.group())
else:
print ("No match!!")
matchobj = re.search(r"to", str)
if matchobj:
print ("search--> matchobj.group() : ", matchobj.group())
else:
print ("No match!!")
正则表达式模式及实例
模式字符串使用特殊的语法来表示一个正则表达式:
反斜杠+字母/数字拥有不同含义
因为正则表达式通常都包含反斜杠,所以最好使用原始字符串来表示它们,模式元素(如r’\b’ 等价于\ \b)匹配相应的特殊字符
元字符
特殊序列
是指在\后跟下表中的某个字符,拥有特殊含义
集合(set)
集合是一对方括号[]内的一组字符,具有特殊含义
以上就是RegEx模块处理正则表达式的详细内容,代码示例简单明了,如果在日常工作遇到此问题。通过这篇文章,希望你能有所收获,更多详情敬请关注创新互联行业资讯频道!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。