首页
学习
活动
专区
工具
TVP
发布

正则表达式1

从本篇开始,会陆续介绍一些爬虫类的学习心得,我也是刚入门自学,欢迎各位一起交流,本人水平有限,难免出现错误,欢迎指正。

正则表达式是一种用来匹配字符串的强有力的功能。Python中的re模块使其拥有了正则表达式的功能。

1、re.match()

功能说明:从字符串的起始位置开始匹配,如果匹配失败就返回None,必须是起始开始匹配,即使是中间能匹配成功,也返回None。

match(pattern, string, flags=)

参数说明:

patter: 匹配的正则表达式

string: 要匹配的字符串

flags: 标志位,用于控制正则表达式的匹配方式,常用的值有以下几种

示例:

importre

str ="WWWWWWtest.test"

print(re.match("www",str))#大小写不符合

print(re.match("WWW",str))#开头匹配成功,只返回第一个匹配结果

print(re.match("test",str))#不符合开头匹配

print(re.match("www",str,flags=re.I))#忽略大小写,匹配成功

输出:

>>>

>>>

2、re.search()

功能说明:在整个字符串里进行匹配,如果匹配失败就返回None。只返回第一个匹配结果。

search(pattern, string, flags=)

参数说明:

patter: 匹配的正则表达式

string: 要匹配的字符串

flags: 标志位,用于控制正则表达式的匹配方式,同re.match

示例:

importre

str ="WWWWWWtest.test"

print(re.search("www",str))#大小写不符合

print(re.search("WWW",str))#开头匹配成功,只返回第一个匹配结果

print(re.search("test",str))#中间匹配成功,只返回第一个匹配结果

print(re.search("www",str,flags=re.I))#忽略大小写,匹配成功

输出:

>>>

>>>

>>>

3、re.findall()

功能说明:在整个字符串里进行匹配,如果匹配失败就返回一个空列表,如果匹配成功就返回一个所有匹配结果的列表。

findall(pattern, string, flags=)

参数说明:

patter: 匹配的正则表达式

string: 要匹配的字符串

flags: 标志位,用于控制正则表达式的匹配方式,同re.match

示例:

importre

str ="WWWWWWtest.test"

print(re.findall("www",str))#大小写不符合,返回空列表

print(re.findall("WWW",str))#匹配成功

print(re.findall("test",str))#匹配成功

print(re.findall("www",str,flags=re.I))#忽略大小写,匹配成功

输出:

>>>['WWW', 'WWW']

>>>['test', 'test']

>>>['WWW', 'WWW']

4、re.sub()、re.subn()

功能说明:在整个字符串里进行正则表达式匹配,将匹配成功的字符串进行替换,可以指定替换的次数,如果不指定,则替换所有的匹配字符串。

两者区别:sub返回被替换后的字符串,subn返回一个元组,元组的第一个元素是被替换的字符串,第二个元素是被替换的次数。

sub(pattern, repl, string, count=, flags=)

subn(pattern, repl, string, count=, flags=)

参数说明:

patter: 匹配的正则表达式

repl: 用来替换的字符串

string: 要被查找替换的原始字符串

count: 最大替换次数

flags: 标志位,用于控制正则表达式的匹配方式,同re.match

示例:

importre

str ="WWW test test www"

#Test 替换 test,替换1次

print(re.sub(r"(test)","Test", str,count=1))

#Test 替换 test,全部替换

print(re.sub(r"(test)","Test", str))

#Test 替换 test,替换1次

print(re.subn(r"(test)","Test", str,count=1))

#Test 替换 test,全部替换

print(re.subn(r"(test)","Test", str))

#替换失败,返回原字符串

print(re.sub(r"(Test)","TEST", str))

#替换失败,返回原字符串,0次

print(re.subn(r"(Test)","TEST", str))

#忽略大小写,TEST 替换 Test,全部替换

print(re.sub(r"(Test)","TEST", str,flags=re.I))

#忽略大小写,TEST 替换 Test,全部替换

print(re.subn(r"(Test)","TEST", str,flags=re.I))

输出:

>>>WWW Test test www

>>>WWW Test Test www

>>>('WWW Test test www', 1)

>>>('WWW Test Test www', 2)

>>>WWW test test www

>>>('WWW test test www', 0)

>>>WWW TEST TEST www

>>>('WWW TEST TEST www', 2)

5、re.spilt()

功能说明:按照能够匹配的子串,将字符串进行分割后返回列表。

split(self, *args, **kwargs)

示例:

importre

str ="WWW test test www"

#字符串的切割功能,按空格进行分割

print(str.split(" "))

#re.split切割功能,按空格进行分割,+表示至少匹配一个空格

print(re.split(r" +", str))

输出:

>>>['WWW', '', '', 'test', 'test', 'www']

>>>['WWW', 'test', 'test', 'www']

re模块还有一些其他的函数功能,就不一一介绍了,如果需要了解更多,可以参考官方文档。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181017G0N4M800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券