码迷,mamicode.com
首页 > 编程语言 > 详细

Python – 正则匹配

时间:2020-02-22 13:47:05      阅读:409      评论:0      收藏:0      [点我收藏+]

标签:图片   lse   info   内容   数字   www   使用   email   else   

用正则切分字符输出 [‘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 – 正则匹配

标签:图片   lse   info   内容   数字   www   使用   email   else   

原文地址:https://www.cnblogs.com/qingaoaoo/p/12344908.html

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