正则表达式

作用:

  • 正则表达式使搜索和替换操作更加灵活高效。
  • 许多程序设计语言都支持使用正则表达式进行字符串操作。
  • 正则表达式是由普通字符和特殊字符组成的文字模式。
  • 正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
  • 正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

在这里插入图片描述
常见正则表达式
在这里插入图片描述

在这里插入图片描述

背景说明

  • 正则表达式使搜索和替换操作更加灵活高效。
  • 许多程序设计语言都支持使用正则表达式进行字符串操作。
  • 正则表达式是由普通字符和特殊字符组成的文字模式。
  • 正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
  • 正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

语法说明

普通字符

  • 普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。

    字符描述
    [ABC]匹配字符集合中的任意一个字符
    [^ABC]匹配字符集合中未包含的任意字符
    [A-Z]匹配指定范围内的任意字符
    [^A-Z]匹配任何不在指定范围内的任意字符

非打印字符

  • 非打印字符也可以是正则表达式的组成部分。

    字符描述
    \cx匹配由x指明的控制字符。x的值必须为 A-Za-z 之一
    \f匹配一个换页符。等价于 \x0c\cL
    \n匹配一个换行符。等价于 \x0a\cJ
    \r匹配一个回车符。等价于 \x0d\cM
    \t匹配一个制表符。等价于 \x09\cI
    \v匹配一个垂直制表符。等价于 \x0b\cK
    \s匹配任何空白字符,包括空格、制表符、换页符等
    \S匹配任何非空白字符
    \w匹配字母、数字、下划线、汉字
    \W匹配非字母、数字、下划线、汉字
    \d匹配一个数字字符。等价于 [0-9]
    \D匹配一个非数字字符。等价于 [0-9]

特殊字符

  • 匹配特殊字符时必须进行转义,即放置反斜杠字\在特殊字符前面。

    特别字符描述
    \将下一个字符标记为一个特殊字符
    .匹配除换行符(\n\r)之外的任何单个字符
    |匹配二者之一

限定符

  • 限定符用来指定正则表达式的一个给定组件的出现次数。

    字符描述
    *匹配前面的子表达式零次或多次。等价于 {0,}
    +匹配前面的子表达式一次或多次。等价于 {1,}
    ?匹配前面的子表达式零次或一次。等价于 {0,1}
    {n}n 是一个非负整数。匹配确定的 n 次
    {n,}n 是一个非负整数。至少匹配 n 次
    {n,m}mn 均为非负整数,其中 n <= m 。最少匹配 n 次且最多匹配 m 次

捕获元

  • 捕获分组的捕获匹配结果可以通过$n(表示第 n 个捕获组的内容)查看。

    字符描述
    (exp)匹配 exp 并捕获这一匹配
    (?:exp)匹配 exp 但不捕获匹配结果。也就是说这是一个非捕获匹配
    exp1(?=exp2)正向肯定预查。用于查找 exp2 前面的 exp1
    exp1(?!exp2)正向否定预查。用于查找后面不是 exp2exp1
    (?<=exp2)exp1反向肯定预查,与正向肯定预查类似,只是方向相反。用于查找 exp2 后面的 exp1
    (?反向否定预查,与正向否定预查类似,只是方向相反。用于查找前面不是 exp2exp1

定位符

  • 定位符将正则表达式固定到行首或行尾,不能与限定符一起使用。

    字符描述
    ^匹配输入字符串开始的位置
    $匹配输入字符串结尾的位置
    \b匹配一个单词边界,即单词和空格间的位置
    \B匹配非单词边界

修饰符

  • 用于指定额外的匹配策略。位于表达式之外

    修饰符含义描述
    iignore 将匹配设置为不区分大小写
    gglobal 全局匹配,查找所有的匹配项。
    mmultiline多行匹配,使边界字符 ^$ 匹配每一行的开头和结尾
    s特殊字符圆点 . 中包含换行符 \n默认情况下的圆点 . 是匹配除换行符 \n 之外的任何字符,加上 s 修饰符之后, . 中包含换行符 \n

运算符优先级

  • 相同优先级的从左到右进行运算,不同优先级的运算先高后低。

    运算符描述
    \转义符
    (), (?:), (?=), []圆括号和方括号
    *, +, ?, {n}, {n,}, {n,m}限定符
    ^, $, \任何元字符、任何字符定位点和序列
    |"或"操作字符具有高于替换运算符的优先级

在线练习

注意事项

  • 限定符 *+ 都是贪婪匹配,会匹配尽可能多的字符。
  • 在限定符的后面加上一个 ? 可以实现懒惰匹配,匹配尽可能少的字符。

参考:

  • https://blog.csdn.net/weixin_39901203/article/details/113412679
  • 动力节点正则表达式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nydia~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值