017-linux正则表达式

一、单字符表示:
1、特定字符:某个具体的字符.
'1'
'a'
'.'
2、范围内单个字符:单个字符[]
[0-9]
[259]
[a-z]
[abc]
[A-Z]
[ABC]
[a-zA-Z]
[,:/]
[.]
字符取反:
[^0-9]
[^123]
3、任意字符:
. 该字符具有特定含义
grep '.' /etc/passwd
4、边界字符:头尾字符
头: grep '^root' /etc/passwd
尾:grep 'false$' /etc/passwd
空行:^$
5、元字符:
字类字符:[a-zA-Z0-9_]=大小写字母+数字+下划线='w'
grep 'w' /etc/passwd
非字类字符:'W'
grep 'W' /etc/passwd
单词分隔符:''
grep 'x' /etc/passwd 表示x的前面和后面都是非单词的字母
二、字符串表示:一串字符的组合
'root'
'1000'
'm..c' 其中单个.表示一个字符
'[A-Z][a-z]'
'[0-9][0-9]'
重复:* + ?
*:表示0次或多次匹配前面的字符或表达式
+:表示1次或多次匹配前面的字符或表达式
?:表示0次或1次匹配前面的字符或表达式
{m,n}:重复特定次数:m~n次
grep 'se*' /etc/passwd -->s se see ....
grep 'se+' /etc/passwd -->se see seee ...
grep 'se?' /etc/passwd -->s se

grep '(se)*' /etc/passwd --> 空行 其他行 se sese ....
grep '(se)+' /etc/passwd -->se sese sesese ...
grep '(se)?' /etc/passwd -->空行 其他行 se
逻辑: |
三、任意字符串: .*
^r.* r开头的字符串
grep '^r.*' /etc/passwd
比较区别:
grep 'm..c' /etc/passwd
grep 'm.*c' /etc/passwd

原文地址:https://www.cnblogs.com/igoodful/p/9061505.html