
正文
Shell命令_正则表达式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
正则表达式是包含匹配,通配符是完全匹配
基础正则表达式
test.txt示例文件
|
1
2
3
4
5
6
7
8
9
10
11
12
|
Mr. James said:
he was the honest
man
in
Companyy.
123despire him.
But since Miss.Mary came,
she never saaaid thoes words.
5555nice!
because ,actuaaaaally,
Mr.James is the most honest
man
!
Later,Miss Mary soid her hot body.
|
1、*符号的使用(“ *”前一个字符匹配0次,或任意多次)
|
1
2
3
4
5
6
7
8
9
|
grep
"a*"
test_rule.txt
#匹配所有内容,包括空白行
grep
"aa*"
test_rule.txt
#匹配至少包含有一个a的行
grep
"aaa*"
test_rule.txt
匹配最少包含两个连续a的字符串
grep
"aaaaa*"
test_rule.txt
#则会匹配最少包含四个个连续a的字符串
|
2、.符号的使用(“ .” 匹配除了换行符外任意一个字符)
|
1
2
3
4
5
6
7
|
grep
"s..d"
test_rule.txt
#“ s..d”会匹配在s和d这两个字母之间一定有两个字符的单词
grep
"s.*d"
test_rule.txt
#匹配在s和d字母之间有任意字符
grep
".*"
test_rule.txt
#匹配所有内容
|
3、“ ^”匹配行首,“ $”匹配行尾
|
1
2
3
4
5
6
|
grep
"^M"
test_rule.txt
#匹配以大写“ M”开头的行
grep
"n$"
test_rule.txt
#匹配以小写“ n”结尾的行
grep
-n
"^$"
test_rule.txt
#会匹配空白行
|
4、“ []” 匹配中括号中指定的任意一个字符,只匹配一个字符
|
1
2
3
4
5
6
|
grep
"s[ao]id"
test_rule.txt
#匹配s和i字母中,要不是a、要不是o
grep
"[0-9]"
test_rule.txt
#匹配任意一个数字
grep
"^[a-z]"
test_rule.txt
#匹配用小写字母开头的行
|
5、“ [^]” 匹配除中括号的字符以外的任意一个字符
|
1
2
3
4
|
grep
"^[^a-z]"
test_rule.txt
#匹配不用小写字母开头的行
grep
"^[^a-zA-Z]"
test_rule.txt
#匹配不用字母开头的行
|
6、“ \” 转义符
|
1
2
|
grep
"\.$"
test_rule.txt
#匹配使用“ .”结尾的行
|
7、“ \{n\}”表示其前面的字符恰好出现n次
|
1
2
3
4
|
grep
"a\{3\}"
test_rule.txt
#匹配a字母连续出现三次的字符串
grep
"[0-9]\{3\}"
test_rule.txt
#匹配包含连续的三个数字的字符串
|
8、“ \{n,\}”表示其前面的字符出现不小于n次
|
1
2
|
grep
"^[0-9]\{3,\}[a-z]"
test_rule.txt
#匹配最少用连续三个数字开头的行
|
9、“ \{n,m\}”匹配其前面的字符至少出现n次,最多出现m次
|
1
2
|
grep
"sa\{1,3\}i"
test_rule.txt
#匹配在字母s和字母i之间有最少一个a,最多三个a
|
来自为知笔记(Wiz)






