Python Re模块
日期: 2019-08-26 分类: 跨站数据 314次阅读
https://mp.weixin.qq.com/s/1YDPrjbf5RWfJE6YN9iCNA
Python Re模块
我们可以通过下面的代码导入re库
import re
1. 使用match()方法进行匹配
match()方法用于从字符串的开始处进行匹配,如果在起始位置匹配成功,则返回Match对象,否则返回None,语法如下
re.match(pattern, string, [flags])
-
pattern:表示模式字符串,由要匹配的正则表达式转换而来
-
string:表示要匹配的字符串
-
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写。
比如匹配字符串是否以"py"开头,不区分大小写代码如下
import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.match(pattern, string, re.I) # re.I表示不区分大小写
print(match)
string = "这是python"
match = re.match(pattern, string, re.I)
print(match)
因为match是用字符串的开头开始匹配的,因为"这是python"这个字符串不是py开始的。所以返回的是None。span这个元组表示匹配的位置,第一个为开始位置,第二个为结束位置。
import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.match(pattern, string, re.I) # re.I表示不区分大小写
print(match)
print("匹配的起始位置:", match.start())
print("匹配的结束位置:", match.end())
print("匹配的元组:", match.span())
print("匹配的字符:", match.string)
print("匹配的数据:", match.group())
2. 使用search()方法进行匹配
search()方法用于在整个字符串中搜索第一个匹配的值,找到就返回Match对象,否则返回None,语法如下:
re.search(pattern, string, [flags])
import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.search(pattern, string, re.I) # re.I表示不区分大小写
print(match)
string = "这是python"
match = re.search(pattern, string, re.I)
print(match)
从运行结果可以看出,这个方法不仅仅在字符串的起始位置搜索,其他位置有符合的匹配也可以。
3. 使用findall()方法进行匹配
findall()方法用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回。查找不到就返回空列表。
re.findall(pattern, string, [flags])
import re
pattern = r'py\w+'
string = 'python is PYTHON'
match = re.findall(pattern, string, re.I) # re.I表示不区分大小写
print(match)
string = "这是python"
match = re.findall(pattern, string, re.I)
print(match)
4. 替换字符串
sub方法用于实现字符串替换。在爬虫中很少会用到。等遇到后和大家分享。
5. 用split()方法分割字符串
import re
pattern = r'[?|&]'
url = 'https://search.bilibili.com/live?keyword=IT蜗壳'
result = re.split(pattern, url)
print(result)
这里用?将url分割了两部分
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:python
下一篇: VMware虚拟机安装详细教程
精华推荐