✨ 欢迎访问!本站所有文章均为原创,转载请注明出处 🌟

day4-3正则表达式

1.为什么要正则表达式:

  • 只要图片前面的(http://47.109.149.251:5022)是对的,后面输入什么都可以,这显然是不科学的,

  • 所以需要正则表达式来屏蔽一些非法的访问:即实现:自定义 URL 转换器

2.正则表达式(Regular Expression)

正则表达式(Regex)是一种强大的 文本模式匹配工具,用于在字符串中查找、替换或提取符合特定规则的子串。几乎所有编程语言(Python、Java、JavaScript 等)和命令行工具(grep、sed、awk)都支持它。
来自deepseek

  • 1.普通字符:

  • 2.元字符:

  • '.' -> 匹配任意单个字符(除换行符)

比如字符串"hello" 的 'he' 可以被 'h.'匹配

  • '[...]' ->匹配括号内的任意一个字符

比如 字符串"1470812" 的"14" 可以被 '1[3,4,5,7,9]' 匹配

  • '{n}' ->匹配前一个字符 恰好 n 次(量词)

比如 "5{5}" 要求数字 5 连续出现 5 次

比如中国号码的手机号组成是:130-132是联不通,133是电不信 134-139是移不动
假设你只需要 移不动的手机号码(11位)
正则表达式应该是: [1][3][4-9][0-9]{8}
表示:
以 13 开头,第三位是 4-9(如 134、135、...、139)
后接任意 8 位数字(如 12345678)

3.自定义转换器

  • 重写一下app.py:
点击查看代码
from flask import Flask,render_template,request
from werkzeug.routing import BaseConverter

class  YearConverter(BaseConverter):
    regex=r'[2][0][0,1,2][0-9]{1}'#范围2000-2029

app=Flask(__name__)

app.url_map.converters['year']=YearConverter

@app.route('/<year:year>')
def home(year):
    print(f"访问的url:{request.url}")
    print(f"请求的方法:{request.method}")
    return render_template("one.html",year=year)
@app.route('/index')
def index():
    return "这是一个index" 



if __name__ == '__main__':
    app.run(host='0.0.0.0',port=5022,debug=True)

点击查看代码
@app.route('/')
def index():
    return render_template("index.html")
posted @ 2025-06-22 20:22  lonely1220  阅读(16)  评论(0)    收藏  举报