Regex: 0.正则表达式初探

来源:互联网 发布:手机vpn软件 编辑:程序博客网 时间:2024/06/01 16:49

历史:regex的概念在上世纪50年代由数学家提出,Ken Thompson首次将其应用于实际。是一种通用概念,整合进多种语言用来处理字符串数据。*perl似乎对其很重视(过段时间了解一下这种语言)

regex概念:正则表达式是一种对字符串进行操作的逻辑公式,用特定的符号组成符合规则的逻辑公式可以对文本信息进行过滤。


正则表达式 -> 元字符(特殊字符)+文字(普通字符)

在实际语言中,特殊字符是语法,普通字符就是单词。


1.行的起始/结束

^行首

$行末

^cat      行首的字母是c ,后面紧跟着字母at

cat$       行末的字母是t, 前面紧跟着字母ca

^cat$     一行只有字母cat,无空格

^$          空行,无空格及任何字符


2.字符组

[……]      字符组

   -          (连字符)表示一个范围【字符组元字符,在字符组内有效】

[a-z]        匹配所有的小写字母


3.排除型字符组

[^……]     排除型字符组

 [^    ]        排除字符【字符组内有效,字符组外表示行首】

[^a-z]       排除所有的小写字母


3.点号匹配任意字符

.                匹配任意字符,【字符组内为点号】

1.2.           1(任意字符)2(任意字符)


4. 多选结构

 |                元字符,把不同的子表达式组合成总表达式,总表达式又可以匹配任意子表达式(匹配的是多个表达式中的一个)

(Geo|Je)ff(re|er)y  匹配Geoffery|goffrey|Jeffrey|Jeffery四个单词


5.单词分界符

\b               元字符,分界单词

\bcat\b       匹配单词cat


6.忽略大小写


7.可选项元素

?             元字符,可选项(问号前面的一个字符可有可无)

(fourth|4(th)?)


8.重复出现量词

元字符前字符可出现的次数

?            单次可选

+              至少一次

*               任意次可选


9.重复出现次数范围

{min,max}        限定重复出现的次数

[a-zA-Z]{1,5}        所有的一到五个大小写字母的组合的集合


10.括号捕捉功能

  (  )          功能:1.限制多选项的范围

                             2.将若干字符 组合为一个表达式

                             3.记录子表达式匹配到的文本,perl中将匹配到的文本记录在$1,$2,$3.......等以数字名命名的变量中

 


11.转义符

  \                    跟在它后面的元字符失去意义


0 0