我正在学习正则表达式并找到了一些代码,所以我在我的终端中进行了测试并得到了下面给出的结果
$ echo "my version 3.8.0" | grep -o '[0-9.]*'
3.8.0
$ echo "my version 3.8.0" | grep -o '[0-9]*'
3
8
0
$ echo "my version 3.8.0" | grep -o '[0-9]'
3
8
0
为什么最后两个表达式给出相同的输出,所以我想知道如何?还有一件事,第一个表达式输出在一行中,其余两个表达式输出在多行中,为什么?我是正则表达式的新手,它非常令人困惑
最后我只想知道上述表达式或代码行的工作流程
首先,快速说明:
[0-9] matches exactly one digit
[0-9]* matches a sequence of digits of any length
在您的情况下,最大的数字序列3.8.0
是3
or8
或0
因为它们被分隔.
38.1.0
例如,如果您的版本是,那么您会看到不同之处:
[0-9] would give 3, 8, 1, 0
[0-9]* would give 38, 1, 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句