元字符

更新时间:2024-06-11 18:35

正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

解释

元字符是一个或一组代替一个或多个字符的字符。听起来有点拗口,但举一个例子也许你就明白了:元字符*用来匹配0个或多个的前一字符;而元字符.用来匹配一个任意的一个字符(除换行符外)。

字符应用

较为常用的元字符包括: “+”, “*”,以及 “?”。其中,“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。

下面,就让我们来看一下正则表达式元字符的具体应用。

/fo+/

因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fo”, “foo”, 或者 “fooo” 等在字母f后面连续出现一个或多个字母o的字符串相匹配。

/eg*/

因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “e”, “eg” 或者 “egg” 等在字母e后面连续出现零个或多个字母g的字符串相匹配。

/Wi?/

因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “W”, 或者 “Wi”,等在字母W后面连续出现零个或一个字母 i 的字符串相匹配。

除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,

/jim{2,6}y/

上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。

使用方式

在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。

空格符,包括tab键换行符

. :用于匹配除换行符之外的所有字符。

下面来看看更多的例子:

好吧,我们说说正则表达式

这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。

正则表达式的话,那就符合要求了。

和忽略大小写的选项类似,有些正则表达式处理工具还有一个处理多行的选项。如果选中了这个选项,^和$的意义就变成了匹配行的开始处和结束处。

元字符总结

egrep元字符总结

匹配单个字符的元字符

. 点号 匹配单个任意字符

[…] 字符组 匹配单个列出的字符

[^…] 排除型字符组 匹配单个未列出的字符

转义字符 若char是元字符,或转义序列无特殊含义时,匹配char对应的普通字符

提供计数功能的元字符

? 问号 容许匹配一次,但非必须

* 星号 可以匹配任意多次,也可能不匹配

+ 加号 至少需要匹配一次,至多可能任意多次

{min,max} 区间量词 至少需要min次,至多容许max次

匹配位置的元字符

^ 脱字符 匹配一行的开头位置

$ 美元符 匹配一行的结束位置

\uff1c 单词分界符 匹配单词的开始位置

\uff1e单词分界符 匹配单词的结束位置

其他元字符

| alternation 匹配任意分隔的表达式

(…) 括号 限定多选结构的范围,标注量词作用的元素,为反向引用”捕获”文本

表达式匹配的文本

使用括号的3个理由:限制多选结构、分组、捕获文本

-i的参数很有用,它能忽略大小写的匹配

转义有3种情况:

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}