文件:test.txt
内容:
a
aa
aaa
b
bb
bbb
Linux 命令
grep "a*" test.txt
匹配结果:
a
aa
aaa
b
bb
bbb
问题:
匹配出
a
aa
aaa 和空格 我理解
*:匹配前一个字符0次或任意次
b的结果 如何被匹配出来的 ???很不理解
文件:test.txt
内容:
a
aa
aaa
b
bb
bbb
Linux 命令
grep "a*" test.txt
匹配结果:
a
aa
aaa
b
bb
bbb
问题:
匹配出
a
aa
aaa 和空格 我理解
*:匹配前一个字符0次或任意次
b的结果 如何被匹配出来的 ???很不理解
*
是可选的意思,如果有就尽量多地匹配,因此能够匹配a
、aa
、aaa
等。
但既然是可选的,那就表示如果一个a
都没有也可以接受。所以能够筛选出空行、b
、bb
、bbb
。
实际上这句正则永远不会失败,因为它可以匹配任意的行,只是匹配的位置不同。对于a
、aa
、aaa
等行,它是匹配了一整行的内容;而对于空行、b
、bb
、bbb
等,它只是匹配了一个“空”字符。
1 回答1k 阅读✓ 已解决
1 回答713 阅读✓ 已解决
3 回答734 阅读✓ 已解决
1 回答1.5k 阅读
1 回答850 阅读✓ 已解决
2 回答630 阅读✓ 已解决
1 回答689 阅读
出现了0次a,自然匹配