正则表达式

Posted nxrs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

正则表达式解析
为什么引入正则表达式?
(正则匹配)用来匹配一类具有相同规则的字符串
(正则替换)将匹配得到的字符串进行替换

规则:
单字符:
. : 除换行以外所有的字符
[]:[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的女孩

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP 正则表达式总结

正则表达式

正则表达式

正则表达式“或“的使用

正则表达式 验证数字格式 非负数 小数点后保留两位 数字正则 double正则

JS正则表达式详解