正则表达式

    技术2023-11-22  82

    正则表达式

    一、什么是正则表达式

    ​ 正则表达式(Regular Expression):描述了一种字符串匹配的模式(patton),包括普通字符(例如,a和z之间的字母)和特殊字符(称为元字符)。

    ​ 作用:

    检查一个字符串是否含有某种子字符串

    将匹配的子字符串替换

    从某个子字符串中取出符合某个条件的子字符串

    ​ 特点:繁琐却强大

    二、匹配网址 详解

    ⛏匹配网址的正则字符串:'https?😕/(?:[-\w.]|(?:%[\da-fA-F]{2}) )+'

    '''一、正则表达式:''' ''' 定义:用来检索或者替换某个规则的文本 ''' import re def Find(string): # findall url = re.findall( 'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}) )+' , string) return url string = 'Runnoob __的网址是:https://www.runoob.com,Google 的网址是:https://www.google.com' print("URLS:",Find(string)) '''正则表达式:是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配''' #场景一、怎样从一个字符串中找到 数字 并输出 str = 'A1abcY123,AdefH&#____^!' patt1 = '[0-9]' # 匹配 数字 以 , 隔开 print(re.findall(patt1,str)) patt2 = '[a-z]' # 匹配 任何小写字母 print(re.findall(patt2,str)) patt3 = '[A-Z]' # 匹配 任何大写字母 print('part3 = ',re.findall(patt3,str)) patt4 = '[A-Z0-9]' # 匹配 任何 大写字母和数字 print(re.findall(patt4,str)) patt5 = '[\w]' # 匹配 数字、字母、下划线 <=> [a-zA-Z0-9_] patt6 = '[a-zA-Z0-9_]' print(re.findall(patt5,str)) print(re.findall(patt6,str)) print(r'\t','\\t') # 把 '\t' 当成普通字符输出 字符串2 = '百度的网址是:https://www.baidu.com,小米的网址是:https://www.mi.com' 正则表达式规则 = 'https?://www.' print(re.findall(正则表达式规则,字符串2)) str3 = '01Aa#!' patt7 = '[a]' print('测试:',re.findall(patt7,str3))

    三、常用的 具有指定含义的符号

    ’https?😕/(?:[-\w.]|(?:%[\da-fA-F]{2}) )+'

    1.语法

    1)普通字符

    ​ 包括所有大写字母、小写字母、数字、标点符号、其他符号。

    2)非打印字符

    字符描述\n匹配一个换行符。等价于\x0a 和 \cJ\t匹配一个制表符。等价于 \x09 和 \cI。

    3) 特殊字符

    字符描述?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请前面加反斜杠|指明两项之间的一个选择( )标记一个子表达式的开始和结束位置。

    4) 限定符

    2.匹配规则

    1)等价

    ? 等价于 匹配长度{0,1} * 等价于 匹配长度{0,} + 等价于 匹配长度{1,} \d 等价于 [0-9] \D 等价于 [^0-9] \ 等价于 [A-Za-z_0-9]

    2) 常用的运算符和表达式

    ^ 开始   () 域段   [] 包含,默认是一个字符长度   [^] 不包含,默认是一个字符长度   {n,m} 匹配长度   . 任何单个字符(\. 字符点)   | 或 # 咋用?   \ 转义   $ 结尾   [A-Z] 26个大写字母   [a-z] 26个小写字母   [0-9] 0至9数字 [A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字   , 分割   .      分割语法:   [A,H,T,W] 包含A或H或T或W字母   [a,h,t,w] 包含a或h或t或w字母   [0,3,6,8] 包含0或3或6或8数字

    3)语法和释义

      基础语法 "^ ([]{}) ([]{}) ([]{}) $" 正则字符串 = "开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束"
    Processed: 0.023, SQL: 9