正则表达式元字符

时间:2021-09-28 15:21:08

工作中会大量用到正则表达式,将元字符总结如下,方便回忆。
1. 行的起始和结束
‘^’代表一行的开始;
‘$’代表一行的结束;
这两个元符号的特别之处在于,他们匹配的是一个位置,而不是具体的文本。
2. 字符组
用数组符号’[…]’标识,匹配中括号内的若干字符之一,在字符组内部,‘-’表示一个范围。
3. 排除型字符组
用‘[^…]’表示,匹配任何未列出的字符。如[^1-6]匹配除了1到6以外的任何字符。
4. 用点号匹配任意字符
元字符’.’用来匹配任意字符的字符组的简写。
5. 多选结构
‘|’表示“或”,子表达式组合构成总表达式。通过这种组合,实现多选。
注意[a|e]和(a|e)是不一样的。在字符组中我们知道,[]内的字符是要被匹配的,所以|是和a、e一样的普通字符。因此,利用()来划定多选结构的范围。
6. 忽略大小写
采用命令行参数’-i’表示进行忽略大小写的匹配。把’-i’写在正则表达式之前。
7. 单词分界符
利用’\<’和’>’匹配单词分界的位置。
需要注意的是,<和>本身并不是元字符,只有当它们与斜线结合起来的时候,才有特殊意义。
8. 可选项元素
元字符’?’代表可选项,把它加载一个字符的后面,表示该字符可有可无。
9. 重复出现
‘+’和’‘和之前的问号类似。’+’表示之前紧邻的元素出现一次或多次,而’‘表示之前紧邻的元素出现任意多次,或者不出现。

  1. 规定重现次数的范围:区间
    用大括号’{min,max}’表示重复出现的区间。如’[a-zA-Z]{1,5}’来匹配(1到5个字母)。
    11.括号与反向引用
    反向引用容许我们匹配与表达式先前部分匹配的同样文本。
    在反向引用中,括号能够记忆其中的子表达式匹配的文本,不论这些文本是什么,元字符序列’\n’都能记住它们。n表示第n个括号匹配的文本。括号是按照开括号’(’从左到右的出现顺序进行的。

  2. 神奇的转义
    如果需要匹配的某个字符本身就是元字符,’\’表示转义,它后面作用的元字符会失去特殊含义。