字符 | 匹配样式 |
. | 除换行符(\n)外所有的单个字符 |
^ | 标志行首,如:^Tiger匹配以Tiger开头的行 |
$ | 标志行尾,如:ing$匹配以ing结尾的行; ^hello$只匹配整行内容为hello的行; ^$匹配空行 |
[ ] | 匹配货不匹配任意出现在 [ ]中的单个字符,如:[abc]匹配 a b c 三个中的任意一个; [^abc] 匹配 a b c 三个字符以外的任意字符;[1-5] -表示范围,匹配数字1到5 |
* | 字符或子表达式出现的次数:0到多次,如:ab*匹配a,ab,abb, ... |
+ | 字符货子表达式出现的次数: 1到多次,如: ab+匹配 ab,abb,abc,... 但不匹配a |
? | 字符或子表达式出现的次数: 0或1次,如:ab?只匹配a,ab |
{n,m} | 表示前面的字符或子表达式出现的次数: n到m次,如ab{2,4}匹配abb,abbb,abbbb 形式2:{n}出现n次,如ab{2}匹配 abb 形式3:{n,}最少出现n次,如ab{2,}匹配abb,abbb,.... |
\ | 转义字符,如\n代表换行符,\.代表字符. (这里.被转义,已不是元字符) |
( ) | 子表达式,如(ab[5-9])+ 括号内的ab[5-9]是一个子表达式 |
\n | 反向引用,n为数字,指对应位置的子表达式,如: (ab[5-9])+:(Br[aeiou])?\1 此处的\1即等同于(ab[5-9])子表达式,整个表达式等同于:(ab[5-9])+:(Br[aeiou])?(ab[5-9]) 如:(ab+?).*?\1可以匹配abb5ytabb |
< > | 单词的起、止边界,如 <Tiger 匹配到单词Tiger开始位置 Tiger> 匹配到单词Tiger结尾的位置 <Tiger> 匹配单词 Tiger |
| | 匹配|之前或之后的样式,如abc|abd匹配abc和abd |
字符 | 匹配样式 |
\b | 单词边界,等同于< > |
\B | 单词内部匹配;与 \b相反 |
\s | 空白字符,等同于[[:space:]] |
\S | 非空白字符,等同于[^[:space:]] |
\w | 构成单词的字符等同于[a-zA-Z0-9_]或[[:alnum:]_] |
\W | 与\w相反,等同于[^a-zA-Z0-9_]或[^[:alnum:]_] |
\` | 通常为字符串的开始 |
\' | 通常为字符串的结束 |
POSIX字符类型
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
字符 | 匹配样式 |
& | 将搜索匹配到的内容作为替换的内容一部分 |
\u | 将匹配样式的第一个字母转为大写 |
\U | 将匹配样式的所有字母转换为大写 |
\l | 将匹配样式的第一个字母转为小写 |
\L | 将匹配样式的所有字母转换为小写 |
\e | 关闭前一次的\u或\l |
\E | 关闭前一次的\U或\L |