码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2019-08-11 13:00:47      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:数字   内容   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!