正则表达式

一、学习网站

        基础知识:Regex Learn - 逐步从零基础到高阶。

        稍稍加强:RegexOne 中文 - 通过简单的交互式练习来学习正则表达式 (imageslr.github.io)

二、基本知识

        1、字符集

                [abc] 匹配任何一个字符 a、b 或 c

        2、选择

                (x|y) 匹配 x 或 y  

        3、重复

                {n} 精确匹配 n

                {n,} 至少匹配 n

                {n,m} 匹配从 n 到 m

        4、量词

                * 零次或多次

                + 一次或多次

                ? 零次或一次

        5、边界

                ^ 行的开始。也表示否定  例:a[^bd]c,除了abcadc,其余 a c 的字符串都匹配

                $ 行的结束

                \b 单词边界

        6、转移

                \ 用于转义特殊字符或表示特殊序列,如 \d 表示数字,\s 表示空白字符

        7、分组

                (x) 创建一个分组,允许你捕获匹配的文本或在量词后重复分组

        8、引用

                \n 引用前面用圆括号定义的分组 n 的匹配

        9、特殊字符

                 \d 数字(等同于 [0-9]

                \D 匹配除数字之外的字符(与d相反)

                \w 单词字符(字母、数字及下划线)

                \W 匹配除字母、数字和下划线之外的字符(与w相反)

                \s 空白字符(空格、制表符、换行符等)

                \S匹配除空白符之外的字符

                .      点可以匹配任何字符

三、进阶

正则表达式都是默认最长匹配,如果想要设置最短匹配,则在后面加一个  ‘  ? ’  

四、C++使用

        regex pattern (R(正则表达式))

        smatch match 保存匹配的str

        regex_searchtextmatchpattern)获取第一个匹配的字符串

        match.str()匹配的str

        match[1].str()第一个捕获组

        match.position[1] 第一个捕获组出现的下标

        regex_replacetextpattern,“替换str或者$1”)

        $1表示第一个捕获组(通过回溯方式取得)

        总的来说,正则表达式很简单,跟着学习网站,过一遍,肯定都能学懂,两个网站题量也不大,认真做,估计最多1h就可以刷完,只是如果不常用,容易忘,所以记录一下。

        后续再完善一下,提供一些例子,丰富些内容。

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值