• 正则表达式


    简介

    正则表达式(Regular Expression)是一种文本模式,包括普通字符(如字母、数字等)和特殊字符(称为"元字符",例如*.avi中的*)。

    正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,从而起到搜索、替换所需要的文本或文件名的功能。



    以“\”开头的元字符

    以下元字符不以“\”开头,要匹配其原义,去掉“\”即可。

    空白字符

    以下除了空格,均为元字符:

    字符描述
    \n换行符
    \r回车符
    \f换页符
    \t水平制表符
    \v垂直制表符
    \d 和 \D

    前者匹配一个数字字符。等价于:

    [0-9]
    
    • 1

    后者与前者相反,匹配一个非数字字符。

    \s 和 \S

    前者匹配一个空白字符,等价于:

    [ \f\n\r\t\v]
    
    • 1

    后者与前者相反,匹配一个非空白字符。

    \w 和 \W

    前者匹配一个字母、数字或下划线,等价于

    [A-Za-z0-9_]
    
    • 1

    后者与前者相反。


    不以“\”开头的元字符

    以下元字符,要匹配其原义,需要使用“\”转义

    限定符

    以下六种元字符可指定匹配字符的次数。

    {n}

    n为非负整数,表示匹配括号前一个字符n次,例如匹配字符a三次:

    a{3}
    
    • 1
    {n,}

    n为非负整数,表示匹配括号前一个字符至少n次。

    {n,m}

    表示匹配括号前一个字符n到m次。

    *

    匹配其前面的单个字符零次或多次,例如以下表达式可匹配“acd”、“abcd”、“abbcd”、“abbbbcd”等。

    ab*cd
    
    • 1
    +

    匹配其前面的单个字符一次或多次。以下表达式可匹配“abcd”、“abbcd”、“abbbbcd”等。

    ab+cd
    
    • 1
    ?

    匹配其前面的单个字符零次或一次。以下表达式可匹配“acd”、“abcd”等。

    ab?cd
    
    • 1

    定位符

    ^

    该字符后面接字符串,表示匹配以该字符串开头的内容,例如:

    ^abc
    
    • 1

    则可以匹配到以“abc”开头的文本。

    若在方括号中使用“^”,其含义为“取反”,即对于配所有该方括号中出现的内容均不匹配,例如,匹配除元音字母外的所有字符:

    [^aeiou]
    
    • 1
    $

    该字符前面接字符串,表示匹配以该字符串结尾的内容,例如,匹配所有以“abc”结尾的字符串:

    abc$
    
    • 1

    该字符可与“^”连用,表示精确匹配,例如:

    ^123$
    
    • 1

    则只能匹配到内容为“123”的文本。

    其他符号

    []

    被方括号括住的内容为字符簇,用于匹配一个该方括号中出现的字符。例如,匹配所有元音字母:

    [aeiou]
    
    • 1

    可使用“-”表示一个范围内的字符都进行匹配。例如,匹配一个数字:

    [0-9]
    
    • 1

    注意顺序,0在前9在后,写反了就啥也匹配不到。

    “-”不是元字符,除了在方括号中的这种特殊用法,“-”与其他普通字符使用方法一致。

    .

    匹配除换行符(\n及\r)之外的单个字符。相当于:

    [^\n\r]
    
    • 1
    ()

    括号内的内容可作为子正则表达式,与其他正则表达式构成完整匹配规则。

    |

    表示选择,匹配“|”前面的字符串或后面的字符串,例如:

    N|CBA
    
    (N|C)BA
    
    • 1
    • 2
    • 3

    前者可匹配“N”和“CBA”,后者匹配“NBA”和“CBA”。



    元字符运算优先级

    元字符一般从左到右运算,优先级由高到底,如下表所示:

    元字符描述
    \转义符
    [], ()中括号和小括号
    *, +, ?, {n}, {n,}, {n,m}限定符
    ^, $, .等定位符和其他元字符
    |选择符号



    修饰符

    修饰符并不是正则表达式的一部分,这些字符一般跟在正则表达式后面,以起到一些额外的作用:

    修饰符部分以“/”作为开始,后面接修饰符:

    修饰符功能
    i不区分大小写
    g全局匹配
    m多行匹配
    s令元字符“.”也能匹配到“\n”



    参考资料

    正则表达式 - 教程

  • 相关阅读:
    使用 Keras 和 TensorFlow Lite 的设备端大型语言模型
    在估值之前的“问题”以及什么是“格罗斯曼-斯蒂格利茨悖论”
    20. mediasoup服务器的布署与使用
    L46.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- w和who
    文件包含漏洞详解
    大专专科毕业设计前端网站源码]基于html的美食网站(js)(静态网页)
    现在Web前端工程师年薪区间是多少?
    (入门自用)--C++--抽象类--多态原理--虚表--1020
    Origin2022安装教程
    蜜蜂遗传学在社会传播中塑造肠道微生物群的菌株结构
  • 原文地址:https://blog.csdn.net/Zerg_Wang/article/details/127704677