Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据

Python Re模块

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

上一篇: js修改scss变量,动态修改scss变量

下一篇: VMware虚拟机安装详细教程

精华推荐