存在一个userinfo.txt文件, cat userinfo.txt 打开文件后内容如下:
1 axa
2 axxa
3 axxxa
4 axxxxa
5 axxxxxa
6 axxxxxxa
7 axxxxxxxa
8 axxxxxxxxa
9 axxxxxxxxxa
2 axxa
3 axxxa
4 axxxxa
5 axxxxxa
6 axxxxxxa
7 axxxxxxxa
8 axxxxxxxxa
9 axxxxxxxxxa
x\{n\} ----x字符只 出现n次
x\{n,\} ----x字符至少出现n次
x\{n,m\} ----x字符出现n-m次(n<=m)
但是通过实践发现:
情况1:grep 'x\{7\}' userinfo.txt 会返回 7,8,9 这3行; 但是理论应该 只返回第7行;
7 axxxxxxxa8 axxxxxxxxa
9 axxxxxxxxxa
情况2:grep 'x\{7,\}' userinfo.txt 会返回 7,8,9 这3行,和理论相同;
7 axxxxxxxa
8 axxxxxxxxa
9 axxxxxxxxxa
情况3:grep 'x\{7,8\}' userinfo.txt 会返回 7,8,9 这3行,但是理论应该 只返回第7,8 这2行;
7 axxxxxxxa
8 axxxxxxxxa
9 axxxxxxxxxa
-----针对上述情况1 和 情况3 与理论不同的地方,可以用如下命令实现:
情况1 的正确命令 grep '[^x]x\{7\}[^x]' userinfo.txt
7 axxxxxxxa
情况3 的正确命令 grep '[^x]x\{7,8\}[^x]' userinfo.txt
7 axxxxxxxa
8 axxxxxxxxa
-------完毕,欢迎大伙来拍砖,一起交流。
本文深入探讨了正则表达式在搜索特定文件中字符重复次数的应用,指出实际操作与理论存在差异,并提供了修正命令。通过具体实例,展示了如何在实践中灵活运用正则表达式解决文件搜索问题。
1万+

被折叠的 条评论
为什么被折叠?



