正则表达式入门要点知识总结

本文介绍了正则表达式的基本概念,包括字符组、特殊符号、量词、贪婪匹配与非贪婪匹配,以及如何取消转义。同时,提供了常见的正则表达式实战应用和在线测试工具链接。
摘要由CSDN通过智能技术生成

正则表达式

  • 1.功能:
    • 不属于任何一种编程语言,主要用于数据的查找和筛选
  • 2.字符组
    • 1> [0-9] 匹配0到9之间的任意整数
    • 2> [a-z] 匹配a到z之间的任意小写字母
    • 3> [A-Z] 匹配A到Z之间的任意大写字母
    • 4> [1-9a-zA-Z] 匹配0到9之间的任意整数,a到z之间的任意小写字母,A到Z之间的任意大写字母
  • 3.特殊符号
    • 注意:特殊符号没有搭配量词的时候,一次只对一个数据值生效
    • 1> . 匹配除换行符之外的任意字符
    • 2> \w 匹配数字,字母,下划线
    • 3> \W 匹配非数字,字母,下划线
    • 4> \d 匹配数字
    • 5> ^ 匹配字符串开头
    • 6> $ 匹配字符串结尾
    • 7> | 表示或的关系
    • 8> () 给正则表达式分组,不影响正则表达式的匹配
    • 9> [ ] 匹配字符组中的字符
    • 10> [^] 匹配除字符组以外的所有字符
  • 4.量词
    • 注意:在正则表达式中所有的量词默认都是贪婪匹配(以最多为原则)
    • 注意:量词不能单独使用,必须跟在正则表达式后面,并且只对自己前面的那一个生效
    • 1> * 重复0次或多次(默认多次)
    • 2> + 重复1次或多次(默认多次)
    • 3> ? 重复0次或1次(默认1次)
    • 4> {n} 重复n次
    • 5> {n,} 重复n次或更多次
    • 6> {n, m} 重复n次或m次
  • 5.贪婪匹配和非贪婪匹配
    • 所有的量词默认都是贪婪匹配,如果在量词后面加上一个?号,那么将变成非贪婪匹配

      待匹配的文本:<script>alert(123)</script>
      正则表达式:<.*>  # 贪婪匹配
      上述正则匹配出来的内容是:<script>alert(123)</script>
      正则表达式:<.*?>  # 非贪婪匹配
      上述正则匹配出来的内容是:<script>      </script>
      """
      小技巧:以后我们在使用贪婪匹配或者非贪婪匹配的时候一般都是用.*或者.*?
      并且结束的标志有上述符号左右两边添加的表达式决定
      """
      
  • 6.取消转义
    • 正则表达式中取消斜杠与字母的特殊含义 就是在斜杠前面加斜杠

      \\n		\n
      \\\\n	\\n
      
    • 在python中有更加简便的写法

      r'\n'
      
      r'\\n'
      
  • 7.常见的一些正则表达式的实战
    • 补充:正则表达式线上测试网址:http://tool.chinaz.com/regex/

    • """
      编写校验用户手机号的正则
      	0?(13|14|15|17|18|19)[0-9]{9}
      编写校验用户身份证的正则
      	\d{17}[\d|x]|\d{15}
      编写校验用户邮箱的正则
      	\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
      编写校验用户qq号的正则
      	[1-9]([0-9]{5,11})
      """
      

作业核心代码

import os
import json
from lib import common
from interface import user
from conf import settings
from db import db_hander


# 1注册
def register():
    print('注册'.center(50, '*'))
    while True:
        username = input('username:').strip()
        password = input('password:').strip()
        confirm_password = input('password').strip()

        # 验证两次密码是否输入一致
        if password == confirm_password:
            file_path = os.path.join(settings.BASE_DIR, 'db', f'{
     username}.json')
            if os.path.exists(file_path):
                print(f'用户名{
     username}已存在')
                continue
            user.register(username, password)
            print(f'用户{
     username}注册成功')
            return


user_auth = {
   
    'username': '',
}


# 2登录
def login():
    print('登录'.center(50, '*'))
    while True:
        username = input('username').strip()
        user_path = os.path.join(settings.BASE_DIR, 'db', '%s.json' % username)
        if os.path.exists(user_path):
            user_dic = user.get_user_interface(username
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值