字符
特定字符
[root@slave2 ddy]# grep 'elsearch' passwd
elsearch:x:501:501::/home/elsearch:/bin/bash
[root@slave2 ddy]#
范围字符
数字字符(单字符):[0-9],[259]
小写字符(单字符):[a-z]
大写字符(单字符):[A-Z]
即大写又有小写(单字符):[a-zA-Z]
符号:[,:_]
取反:[^0-9] [^0]
任意字符
代表任意字符:'.'
注意'[.]'和'\.'的区别
边界字符
头字符:^ 注意与[^]的区别
[root@slave2 ddy]# grep '^else' passwd --color
elsearch:x:501:501::/home/elsearch:/bin/bash
尾字符:$
[root@slave2 ddy]# grep 'bash$' passwd --color
root:x:0:0:root:/root:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
munan:x:500:500:munan:/home/munan:/bin/bash
elsearch:x:501:501::/home/elsearch:/bin/bash
空行:^$
元字符
\w:匹配任意字类字符,包括下划线 ([a-zA-Z0-9_])
\W:匹配任意非字类字符,包括下划线 ([^a-zA-Z0-9_])
\b:单词的分隔
字符串(字符组合)
重复:
*:零次或多次匹配前面的字符或子表达式
+:一次或多次匹配前面的字符或子表达式
?:零次或一次匹配前面的字符或子表达式
():对括号内的内容整体进行重复
重复特定次数:{n,m}
逻辑:
|:逻辑或
匹配第一个空格之前的任何单词
例如原始数据:
hshd household 8/29/2007 LB
我想匹配第一个空格(空格)之前的任何内容。所以,在这种情况下,想得到:
hshd
使用正则表达式即可:
([^\s]+)