资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Python如何使用RegEx模块处理正则表达式?

 Python如何使用RegEx模块处理正则表达式?针对这个问题,今天小编总结这篇有关RegEx模块的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

为芷江等地区用户提供了全套网页设计制作服务,及芷江网站建设行业解决方案。主营业务为成都网站建设、做网站、芷江网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

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)

Python如何使用RegEx模块处理正则表达式?

这个列表以被找到的顺序包含匹配项。

如果未找到匹配项,返回空列表:

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())

Python如何使用RegEx模块处理正则表达式?

如果未找到匹配,返回值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)

Python如何使用RegEx模块处理正则表达式?

可以通过指定maxsplit参数来控制出现次数:

实例

仅在首次出现时拆分字符串:

import re

str = "I want to go to school"

x = re.split("\s", str, 1)

print(x)

Python如何使用RegEx模块处理正则表达式?

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)

Python如何使用RegEx模块处理正则表达式?

通过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)

Python如何使用RegEx模块处理正则表达式?

如果没有匹配项,则返回值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)

Python如何使用RegEx模块处理正则表达式?

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!!")

Python如何使用RegEx模块处理正则表达式?

正则表达式模式及实例

模式字符串使用特殊的语法来表示一个正则表达式:

反斜杠+字母/数字拥有不同含义

因为正则表达式通常都包含反斜杠,所以最好使用原始字符串来表示它们,模式元素(如r’\b’ 等价于\ \b)匹配相应的特殊字符

元字符

特殊序列

是指在\后跟下表中的某个字符,拥有特殊含义

集合(set)

集合是一对方括号[]内的一组字符,具有特殊含义

 以上就是RegEx模块处理正则表达式的详细内容,代码示例简单明了,如果在日常工作遇到此问题。通过这篇文章,希望你能有所收获,更多详情敬请关注创新互联行业资讯频道!


网页标题:Python如何使用RegEx模块处理正则表达式?
网页URL:http://www.cdkjz.cn/article/jggoee.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220