C#正则表达式(二)

正则表达式是一种匹配文本的模式。.NET框架提供了允许这种匹配的正则表达式引擎,模式由一个或多个字符、运算符和结构组成。

C#中正则表达式有以下几种:

一、 字符转义

正则表达式中的反斜杠“\”指示以下值之一:
  1. 后接字符为特殊字符,例如,\b 是指示正则表达式匹配应从单词边界开始的定位点,\t表示制表符,而 \x020 表示空间。
  2. 未转义语言构造的字符应按字面意思进行解释,例如,大括号 ({) 开始定义限定符,而反斜杠后接大括号 ({)
    表示正则表达式引擎应匹配大括号。 同样,单个反斜杠标记转义的语言构造的开始,而两个反斜杠 (\) 表示正则表达式引擎应匹配反斜杠。

    正则表达式中的反斜杠字符(\)指示其后跟的字符是特殊字符,或应按原义解释该字符。
    下表列出了转义字符:

这里写图片描述

正则表达式 \G(.+)[\t|\u007c](.+)\r?\n 可以解释为下表中所示内容:
模式描述
\G从上次匹配结束处开始匹配
(.+)一次或多次匹配任何字符。 这是第一个捕获组。
[\t\u007c]匹配制表符 (\t) 或垂直条 (
(.+)一次或多次匹配任何字符。 这是第二个捕获组。
\r? \n匹配零或一个出现回车符后接新行的次数。

二、 字符类

一个字符类定义一组字符,其中的任一字符均可出现在输入字符串中以便成功匹配。

下表列出了字符类:

字符类

正字符组:[]
负字符组:[^]
任意字符:.
Unicode类别或Unicode块:\p{}
负Unicode类别或Unicode块:\P{}
单词字符:\w
    w 与任何单词字符匹配。 单词字符是下表中列出的任何 Unicode 类别的成员。

单词字符

空白字符:\s

空白字符

非空白字符:\S
\S匹配任何非空白字符,它等效于[^\f\n\r\t\v\x85\p{Z}],正则表达式模式与等效于\s的正则表达式模式相反

非空白字符

十进制数字字符:\d
正则表达式模式^(\(?\d{3}\)?[\s-])?\d{3}-\d{4}$ 的定义如下表所示。它测试输入字符串是否表示美国和加拿大的有效电话号码

十进制字符

三、 定位点

定位点或原子零宽度断言会使匹配成功或失败,具体取决于字符串中的当前位置,但它们不会使引擎在字符串中前进或使用字符。

下表列出了定位点:

这里写图片描述

四、 分组构造

分组构造描述了正则表达式的子表达式,通常用于捕获输入字符串的子字符串。可以使用分组构造来完成下列任务:
  1. 匹配输入字符串中重复的字表达式。
  2. 将限定符应用与拥有多个正则表达式语言元素的字表达式。
  3. 包括有RegX.Replace和Match.Result方法返回的字符串的字表达式。
  4. 从Match.Groups属性中检索各个字表达式,并分别从匹配的文本作为一个整体处理它们。

    下表列出了受.NET Framework正则表达式引擎支持的分组构造,并指出它们是捕获还是非捕获。

分组构造

下表给出了分组构造:

分组构造

五、 限定符

限定符指定在输入字符串中必须存在上一个元素(可以是字符、组或字符类)的多少个实例才能出现匹配项,限定符包括下表中列出的语言元素:

限定符

六、 反向引用构造

反向引用允许在同一正则表达式中随后标识以前匹配的字表达式。下表列出了反向引用构造:

反向引用构造

七、 备用构造

备用构造用于修改正则表达式以启用ether、or匹配。下表列出了备用构造:

备用构造

八、 替换

替换时替换模式中使用的正则表达式:

替换

九、 杂项构造

下表中列出了杂项构造:

杂项构造

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值