标签:import 使用 菜鸟 pytho 否则 通过 一点 match 描述
Python 里用 flag
关键字参数表示正则修饰符。
修饰符 | 描述 |
---|---|
re.I | 使匹配对大小写不敏感。 |
re.L | 做本地化识别(locale-aware)匹配。 |
re.M | 多行匹配,影响 ^ 和 $ 。 |
re.S | 使 . 匹配包括换行在内的所有字符。 |
re.U | 根据 Unicode 字符集解析字符。这个标志影响 \w 、\W 、\b 、\B 。 |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |
re.I | re.M
。\N
。(?<name>exp)
:匹配 exp
,并捕获文本到名称为 name
的组里,也可以写成 (?‘name‘exp)
。(?P<name>exp)
。group(1)
或 group(name)
获取元表达式的匹配内容。注意:反向引用需要前缀
r
,否则会被 Python 误认为是进制数:比如\1
实际意义变成\x01
。
re.match()
函数Python 中的 match()
,需要这个字符串以这个正则开头,【检验字符串开头有没有正确】。如果字符串开头有所不同就匹配失败,返回 none
。(就是许多文章说的 “检测 RE 是不是在 string 的开始位置匹配”)
re.fullmatch()
函数fullmatch()
:字符串完全匹配正则,字符串完全匹配正则【检验这个字符串是不是我们所要的东西】
re.match()
正则如果使用了 $
也是可以实现这种作用的。re.search()
函数search()
是在整个字符串里部分匹配,【字符串里有没有这个的东西】。还有一点值得注意的是 search()
只会匹配一次。
re.sub()
函数基本需求使用 replace()
,当然这里都说了 re 模块了,复杂的替换应该使用 re.sub()
。它会替换字符串里的所有匹配。
substitute
n. 代替者; 代替物; 代用品; 替补(运动员);
v. (以…) 代替; 取代;
re.sub(pattern, repl, string, count=0, flags=0)
pattern
:正则表达式。
repl
:要替换成的字符串,可为函数。
string
:源字符串。
count
:最少要替换的次数。
flag
:正则表达式的匹配模式
re.sub(r"\d+", "0", "123", re.I)
将修饰符给设置到 count
里,应写关键字参数 flags=re.I
。# 将“\n3.”等换为“【3】”
oriStr = ‘\n3.这是第三点‘
resStr = re.sub(r‘\n(\d+)\.‘, r‘\n【\1】‘, oriStr)
print(resStr)
【3】这是第三点
re.findall()
与 re.finditer()
函数re.findall()
,返回所有匹配的一个列表。re.findall(pattern, string, flags=0)
pattern.findall(string[, pos[, endpos]])
import re
result1 = re.findall(r‘\d+‘,‘runoob 123 google 456‘)
pattern = re.compile(r‘\d+‘) # 查找数字
result2 = pattern.findall(‘runoob 123 google 456‘)
result3 = pattern.findall(‘run88oob123google456‘, 0, 10)
print(result1)
print(result2)
print(result3)
输出结果:
[‘123‘, ‘456‘]
[‘123‘, ‘456‘]
[‘88‘, ‘12‘]
re.finditer()
,返回所有匹配的一个迭代器。re.finditer(pattern, string, flags=0)
import re
it = re.finditer(r"\d+","12a32bc43jf3")
for match in it: # 这里仅作演示,将所有可能的都进行匹配了
print(match.group())
12
32
43
3
re.split()
函数将匹配的字符串作为 split 的字符,以其切割字符串返回列表
re.split(pattern, string[, maxsplit=0, flags=0])
>>>import re
>>> re.split(‘\W+‘, ‘runoob, runoob, runoob.‘) # 注意这里是大写的W
[‘runoob‘, ‘runoob‘, ‘runoob‘, ‘‘]
>>> re.split(‘(\W+)‘, ‘ runoob, runoob, runoob.‘) # 小括号表示保留这个分隔符
[‘‘, ‘ ‘, ‘runoob‘, ‘, ‘, ‘runoob‘, ‘, ‘, ‘runoob‘, ‘.‘, ‘‘
重要的一点就是可以使用小括号,将分隔符保留下来。
本文部分参考:Python3 正则表达式 | 菜鸟教程
标签:import 使用 菜鸟 pytho 否则 通过 一点 match 描述
原文地址:https://www.cnblogs.com/ercilan/p/14811842.html