佚名通过本文主要向大家介绍了linux 正则,linux 正则表达式,linux 正则匹配,linux 正则表达,linux grep正则表达式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:Linux 正则的 不理解
描述:
解决方案1:
描述:
文件:test.txt
内容:
a
aa
aaa
b
bb
bbb
Linux 命令
grep "a*" test.txt
匹配结果:
a
aa
aaa
b
bb
bbb
问题:
匹配出
a
aa
aaa 和空格 我理解
*:匹配前一个字符0次或任意次
b的结果 如何被匹配出来的 ???很不理解
解决方案1:
其实还是子串匹配,如果你不希望出现b的内容,应该^a*$
。
*
是可选的意思,如果有就尽量多地匹配,因此能够匹配a
、aa
、aaa
等。
但既然是可选的,那就表示如果一个a
都没有也可以接受。所以能够筛选出空行、b
、bb
、bbb
。
实际上这句正则永远不会失败,因为它可以匹配任意的行,只是匹配的位置不同。对于a
、aa
、aaa
等行,它是匹配了一整行的内容;而对于空行、b
、bb
、bbb
等,它只是匹配了一个“空”字符。
出现了0次a,自然匹配