Lambda | RE

Lambda表达式(Lambda Expressions):

Lambda表达式(Lambda Expressions):匿名函数的表示方法,用于在代码中定义临时函数。提供了一种简洁的方式来定义和使用函数对象或回调函数。

[capture](parameters) -> return_type { body }

  • capture:指定哪些外部变量被捕获到Lambda中。
  • parameters:Lambda接受的参数。
  • return_type:Lambda的返回类型(可选)。
  • body:Lambda的主体,即要执行的代码。

RE(Regular Expressions)正则表达式库:std::regex标准库

RE库:提供对正则表达式的支持,用于在字符串中执行复杂的模式匹配捕获和替换操作。

regex类:

  1. regex类初始化:regex r (re)|  regex r (re, f)
  2. re:是正则表达式,可以为string,范围迭代器对……
  3. f:标志,   例如:regex::icase忽略大小写
  4. r = r1 | r.assign(re, f) 赋值操作
  5. r.flags()返回标志

regex_error

  1. 正则表达式可以理解为一种简单的编程语言,所以也会出现语法错误,从而抛出regex_error异常
  2. 可以用try{}catch{}捕获异常:抛出code对应错误类型数值编码,可以清除发生了什么语法错误

输入序列

  1. 可以接受string ,wstring, const char* , const wchar*
  2. 但是注意:RE库类型必须和输入序列类型匹配:例如smatch & ssub_match || cmatch & csub_match,否则会编译失败

regex_match & sregex_search

  1. 将整个输入序列与正则表达式匹配 | 搜索首个与正则表达式匹配的子序列,返回bool值
  2. (seq(输入序列),m(match对象保存匹配结果),r(regex对象),mft(可选))

match & sub_match

  1. match 容器类:
  2. 存储搜索结果
  3. match对象的操作:
    1. m.str(n)返回第n个与子表达式匹配的字符,
    2. m.length(n)返回第n个与子表达式匹配的字符大小, 
    3.  m.prefix()返回当前匹配之前的字符,
  4. sub_match子表达式:
  5. 正则表达式语法中用()代表一个子表达式,一个match对象包含多个子表达式,
  6. 对match对象:match[0]表示整个匹配,match[1]……表示第一个匹配的子表达式
  7. sub_match对象的操作:
    1. matched返回bool值,验证是否与子表达式匹配,返回true表示匹配
    2. match[n].str()返回与第n个子表达式,匹配的字符串

regex_iterator

  1. 寻找所有的匹配
  2. 初始化:regex_iterator  it (b迭代器起始范围, e迭代器结束范围, re 正则表达式),会定位到第一个与re匹配的位置
  3. it++: 递增迭代器
  4. *it返回match对象的引用,it->访问it指针指向的match对象的成员

regex_replace

  1. regex_replace(seq输入序列,re正则表达式,fmt格式化字符串,mft)遍历seq,查找与re对象匹配的子串,用fmt生成格式化输出
  2. 格式化字符串$后接索引号,表示第几个子表达式sub_match

mft:std::regex_constants::match_flag_type

  1. 在替换过程中控制匹配或格式的标签

正则表达式(regular expression)语法:ECMAScript:

正则表达式(regular expression):是一种用于描述和匹配字符串和文本数据的工具。提供了一个灵活的方式来描述和匹配字符串模式。

\ 反斜杠:表示后一个字符不代表特殊含义,通常有\ 或 括号的前面需要再加\去掉\ 或括号的含义,例如\\d

() 分组为子表达式

匹配单个字符

普通字符包括字母、数字和一些符号
.匹配任意单个字符
\d匹配数字 \d{n}匹配n个数字序列

匹配多个字符

*匹配前面的字符出现零次或多次
+匹配前面的字符出现一次或多次
匹配前面的字符出现零次或一次
{m, n}匹配前面的字符出现m到n次

锚字符

^……匹配以……字符串的起始位置
……$匹配以……字符串的结束位置

字符类

[A-Z] [a-z] [0-9]方括号内包含要匹配的字符集合,匹配任何一个大写字母 | 小写字母 | 任何一个数字字符
脱字符^匹配表示排除字符类的字符

预定义字符类

s匹配任何空白字符

空白字符包括的内容:

  • 空格(Space):例如 ' '
  • 制表符(Tab):例如 '\t'
  • 换行符(Newline):例如 '\n'
  • 回车符(Carriage Return):例如 '\r'
  • 垂直制表符(Vertical Tab):例如 '\v'
  • 换页符(Form Feed):例如 '\f'
  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值