改博客为在写AI项目的时候学习正则的简单笔记
python 正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。(网络解释)
其中python中自带的模块包含所有的正则表达式功能
re.match(pattern, string, flags=0)函数
尝试在字符串的开头应用pattern正则表达式模式,返回匹配对象,如果找不到匹配对象,则返回无。 (Try to apply the pattern at the start of the string, returning a Match object, or None if no match was found.)
参数 | 描述 |
---|---|
pattern | 要匹配的正则表达式 |
string | 要匹配的字符串 |
flags | 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等 |
实战:
import re
s = "https://www.baidu.com"
print(re.match('htt', s).span()) # 从起始位置开始匹配
输出为:
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
print(re.match('htt', s).group())
re.search(pattern, string, flags=0)
参数列表同上面re.match
re.search 扫描整个字符串并返回第一个成功的匹配。
实战
print(re.search('www',s).span()
print(re.search('www', s).group()
re.match与re.search区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
检索和替换
re.sub(pattern, repl, string, count=0, flags=0)
re.sub 用于替换字符串中的匹配项
参数 | 描述 |
---|---|
pattern | 正则中的模式字符串 |
repl | 替换的字符串,也可为一个函数。 |
string | 要替换的源字符串 |
count | 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。 |
phone = "123456www顺序排列着"
print("phone进行数据的提取")
#num = re.sub(r'w.*$', "", phone)
num = re.sub(r'\D', "", phone) # 该局等同于上一句 \D 表示讲非数组替换
print(num)
目前先写这几个函数功能 因还要做项目有时间再来更新