Python笔记:Python中的正则表达式常用使用案例

本文介绍如何使用Python解析HTML中的DOM数据,通过正则表达式抓取链接和文本,以及在网页校验和MySQL数据库查询中的正则应用。

python中解析dom中的数据

关键代码:

index.html文件

<html>
    <body>
        <ul>
            <li><a href="www.baidu.com">百度</a></li>
            <li><a href="www.taobao.com">淘宝</a></li>
            <li><a href="www.sina.com">新浪</a></li>
        </ul>
    </body>
</html>

python脚本

import re

# 读取本地文件 此处测试时和python文件处于同级 使用 ./index.html访问
f = open("./index.html", "r", encoding="utf-8") # open是python内置用于打开读取文件的函数,encoding解决字符编码不统一的问题
content = f.read()
f.close()

# print(content) # 测试打印读取的内容

list = re.findall("<a href=\"(.*?)\">(.*?)</a>", content) # (.*?) 中的 () 具有 子存储 作用

for i in list:
    print(i[1] + " : " + i[0])

正则用于网页校验

关键代码:

页面程序

<html>
    <body>
        <form action="validate.do" name="myform" method="post" onsubmit="return doSubmit()">
            <div>
                账号:<input type="text" name="uname" /> 8-16位有效字符
            </div>
            <div>
                密码:<input type="text" name="pass" /> 6-18位
            </div>
            <div>
                邮箱:<input type="text" name="email" />
            </div>
            <input type="submit" value="提交" />
        </form>
    </body>
    <script>
        function doSubmit() {
            var myform = document.myform;
            var name = myform.name.value;
            var pass = myform.pass.value;
            var email = myform.email.value;

            // 账号名称校验 两种方式:
            // /[0-9a-zA-Z_]{8, 16}/
            // /^w{8, 16}/
            if(!name.match(/^[0-9a-zA-Z_]{8, 16}$/)) {
                // todo
                console.log('账号必须要求8-16位有效字符!');
                return false;
            }
            // 校验 密码
            if(!pass.match(/.{6, 18}/)) {
                // todo
                console.log('密码要求6-18位');
                return false;
            }

            // 校验 email
            if(!email.match(/^\w+@\w+(\.\w+){1,2}$/)) {
                // todo
                console.log('不符合邮箱格式!');
                return false;
            }
        }
    </script>
</html>

正则在mysql数据库的应用

    select * from stu where name regexp '^[a-z]{2}$'

正则应用小结

  1. 正则的格式是通用的
  2. 即使部分语言有所区别,但也大同小异
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值