gpt4 book ai didi

regex - [0-9]* 和 [0-9] 之间的差异

转载 作者:行者123 更新时间:2023-12-03 09:00:13 24 4
gpt4 key购买 nike

我正在学习正则表达式并发现了一些代码,因此我在终端中进行了测试并得到了下面给出的结果

$ 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 中最大的数字序列是 380 > 因为它们由 分隔。

例如,如果您的版本是 38.1.0,那么您会看到差异:

[0-9] would give 3, 8, 1, 0
[0-9]* would give 38, 1, 0

关于regex - [0-9]* 和 [0-9] 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51220749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com