加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式笔记

发布时间:2020-12-13 23:11:16 所属栏目:百科 来源:网络整理
导读:http://dragon.cnblogs.com/archive/2006/05/08/394078.html这个文章特别好,下面只是重复他的内容,加强记忆。 1.表示匹配首次出现 2.正则表达式嵌入到其他开发语言时先被宿主语言解析,再调用正则引擎,如要在c++中匹配首次出现c:something,传入正则引擎

http://dragon.cnblogs.com/archive/2006/05/08/394078.html这个文章特别好,下面只是重复他的内容,加强记忆。

1.<<>>表示匹配首次出现

2.正则表达式嵌入到其他开发语言时先被宿主语言解析,再调用正则引擎,如要在c++中匹配首次出现c:something,传入正则引擎的应该是<<c:something>>,在c++ 的原型就应该写成<<c:\something>>

3.对于文字字符,有12个字符被保留作特殊用途。他们是:[ * ^ . + | ( ) ? $ ],被称作元字符。

4.不可显示字符

可以使用特殊字符序列来代表某些不可显示字符:

<<t>>代表Tab(0x09)

<<r>>代表回车符(0x0D)

<<n>>代表换行符(0x0A)

要注意的是Windows中文本文件使用“rn”来结束一行而Unix使用“n”。

5.正则引擎有两种,文本向导类(text directed) 和 正则向导类(regex directed),目前大多数引擎属于正则向导类。正则向向类的特点就是总是返回最左边的匹配,例如:<<re|rex>>在文本rex中文本向导类匹配rex(最大匹配),正则向导类匹配re。

6.[]是字符集匹配符,[xXbB]匹配[]里的作一字符,注意:是匹配“字符集中的“一“个字符。

7.[]字符集内只解析12个元字符中的几个和自家专属的一个,分别是] ^ - “]“表达结束,""转义,"^"取反,“-“范围

8.在字符集定义中为了将反斜杠“”作为一个文字字符而非特殊含义的字符,你需要用另一个反斜杠对它进行转义。<<[x]>>将会匹配一个反斜杠和一个X。“]^-”都可以用反斜杠进行转义,或者将他们放在一个不可能使用到他们特殊含义的位置。我们推荐后者,因为这样可以增加可读性。比如对于字符“^”,将它放在除了左括号“[”后面的位置,使用的都是文字字符含义而非取反含义。如<<[x^]>>会匹配一个x^<<[]x]>>会匹配一个“]”或“x”。<<[-x]>><<[x-]>>都会匹配一个“-”或“x

9.常用的字符集有一些简写方法,大多数引擎都支持。如

<<d>>代表<<[0-9]>>;

<<w>>代表单词字符。这个是随正则表达式实现的不同而有些差异。绝大多数的正则表达式实现的单词字符集都包含了<<A-Za-z0-9_]>>。

<<s>>代表“白字符”。这个也是和不同的实现有关的。在绝大多数的实现中,都包含了空格符和Tab符,以及回车换行符<<rn>>。

字符集的缩写形式可以用在方括号之内或之外。<<sd>>匹配一个白字符后面紧跟一个数字。<<[sd]>>匹配单个白字符或数字。<<[da-fA-F]>>将匹配一个十六进制数字。

取反字符集的简写

<<[S]>> = <<[^s]>>

<<[W]>> = <<[^w]>>

<<[D]>> = <<[^d]>>

·字符集的重复

如果你用“?*+”操作符来重复一个字符集,你将会重复整个字符集。而不仅是它匹配的那个字符。正则表达式<<[0-9]+>>会匹配837以及222。


88

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读