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

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. 即使部分语言有所区别,但也大同小异
发布了370 篇原创文章 · 获赞 169 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/Tyro_java/article/details/102880027