标签:数字 内容 result 中文 贪婪 sea 替换 字符 arc
正则表达式解析
为什么引入正则表达式?
(正则匹配)用来匹配一类具有相同规则的字符串
(正则替换)将匹配得到的字符串进行替换
规则:
单字符:
. : 除换行以外所有的字符
[]:[nxr] [a-z] 匹配中括号中任意一个字符
\d:数字 0-9
\D:非数字
\w:数字,字母,下划线,中文
\W:非\w
\s: 所有的空白字符
\S:非\s
数量修饰:
* : 任意多次 >=0
+ : 至少一次 >=1
?: 0次或者1次
{m}: m次
{m,}:至少m次
{m,n}:匹配[m,n]次
边界:
\b, \B
^: 以某某开头
$: 已某某结尾
分组:
(){4} 视为一个整体
() \1 \2 子模式
import re
string = ‘<p><div><span>李四</span></div></p>‘
# pattern = r‘<p>(.*?)</p>‘
pattern = r‘<(\w+)><(\w+)>\w+</\2></\1>‘
pattern = re.compile(pattern)
result = pattern.search(string)
print(result) # <re.Match object; span=(3, 29), match=‘<div><span> 李四</span></div>‘>
贪婪模式:
.*?
.+?
re.I 忽略大小写
re.M 多行匹配
re.S 单行匹配 可以使.匹配任意字符(包括换行符)
match/search/findall
re.sub(正则表达式,替换的内容(函数),带匹配的字符串)
import re
def fun(s): # s为正则匹配得到的字符串
ret = int(s.group()) - 10
return str(ret)
string = ‘我喜欢身高为170的女孩‘
pattern = r‘\d+‘
pattern = re.compile(pattern)
result = pattern.sub(fun, string)
print(result) # 我喜欢身高为160的女孩
标签:数字 内容 result 中文 贪婪 sea 替换 字符 arc
原文地址:https://www.cnblogs.com/nxrs/p/11334444.html