正则表达式

2018-06-23  本文已影响825人  _羊羽_

字符

语法 说明 表达式实例 匹配字符串
. 匹配任意字符,除了\n(换行符) - -
\ 转义字符 - -

特定字符

语法 说明 表达式实例 匹配字符串
\d 匹配任意数字,等价于 [0-9] - -
\D 匹配任意非数字 - -
\s 匹配任意空白字符,等价于 [\t\n\r\f]. - -
\S 匹配任意非空字符 - -
\w 匹配字母数字及下划线 grep '\w' passwd -
\W 匹配非字母数字及下划线 - -
\z 匹配字符串结束 - -
\G 匹配最后匹配完成的位置 - -
\n 匹配一个换行符 - -
\t 匹配一个制表符 - -
\b 代表着单词的开头或结尾,也就是单词的分界处 - -

例如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。

数量词

语法 说明 表达式实例 匹配字符串
* 匹配前一个字符 0 个或多个的表达式 - -
+ 匹配 1 个或多个的表达式 - -
? 匹配 0 个或 1 个由前面的正则表达式定义的片段,非贪婪方式 - -
{n} 精确匹配 n 个前面表达式 - -
{n, m} 匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式 - -
.* 贪心算法,任意字符串 - -
.*? 非贪心算法 - -
# grep 'roo*' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
grep 'roo\+' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

边界匹配

语法 说明 表达式实例 匹配字符串
^ 匹配字符串的开头
$ 匹配字符串的末尾
\A 匹配字符串开始 - -
\Z 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串 - -

空行的表示:^$

分组

语法 说明 表达式实例 匹配字符串
[...] 用来表示一组字符 - -
( ) 匹配括号内的表达式,也表示一个组 - -
竖线 表示竖线两边任意匹配一个 - -

范围内字符

数字字符:[0-9]
小写字符:[a-z]
大写字符:[A-Z]
反向字符[^0-9] 不包含

grep '[0-9]' passwd
grep '[123]' passwd
grep '[A-Z]' passwd
上一篇 下一篇

猜你喜欢

热点阅读