Python – 正则匹配
Posted qingaoaoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python – 正则匹配相关的知识,希望对你有一定的参考价值。
用正则切分字符串输出 [‘info‘,‘xiaoZhang‘,‘33‘,‘shandong‘]、s="info:xiaoZhang33shandong",
import re s="info:xiaoZhang 33 shandong" res = re.split(r":| ", s) # |表示或,根据冒号或者空格切分 print(res) [‘info‘, ‘xiaoZhang‘, ‘33‘, ‘shandong‘]
正则匹配以163.com结尾的邮箱
import re email_list = ["xiaowang@163.com", "xiaowang@163.comheihei", "xiaowang@qq.com"] for email in email_list: ret = re.match("[w]{4,20}@163.com$", email) if ret: print("%s是符合规定符合的邮件地址:%s"%(email, ret.group())) else: print("%s不符合要求"%email) xiaowang@163.com是符合规定符合的邮件地址:xiaowang@163.com xiaowang@163.comheihei不符合要求 xiaowang@qq.com不符合要求
字符串a="not404found张三99深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三深圳"
使用正则表达式匹配出<html><h1>www.baidu.com</h1></html>中的地址(2)a="张明98分",用re.sub,将98替换为100
import re source="<html><h1>www.baidu.com</h1></html>" pat=re.compile("<html><h1>(.*?)</h1></html>") print(pat.findall(source)[0]) s="张明98分" print(re.sub(r"d+","100",s))
正则表达式匹配中(.)和(.?)匹配区别?
答:(.)为贪婪模式极可能多的匹配内容,(.?)为非贪婪模式又叫懒惰模式,一般匹配到结果就好,匹配字符的少为主,示例代码如下
import re s = "<html><div>文本1</div><div>文本2</div></html>" pat1 = re.compile(r"<div>(.*?)</div>") print(pat1.findall(s)) pat2 = re.compile(r"<div>(.*)</div>") print(pat2.findall(s)) # 输出:[‘文本1‘,‘文本2‘];[‘文本1</div><div>文本2‘]
<divclass="nam">中国</div>,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的
以上是关于Python – 正则匹配的主要内容,如果未能解决你的问题,请参考以下文章