gpt4 book ai didi

regex - 提取版本号的正则表达式

转载 作者:行者123 更新时间:2023-12-03 20:02:04 30 4
gpt4 key购买 nike

我想从 ld -v 中提取版本号命令,我写了以下 sed表达:

ld -v | sed -r 's/.+([0-9|\.]+)/\1/'
然而,这输出 1 ,这是版本号的最后一位。我期望的结果是 2.35.1我的正则表达式哪里出错了?我是怎么理解的 .+部分匹配所有字符和空格和 ([0-9|\.]+)匹配一个数字或一个点,然后捕获它。 \1然后引用捕获的位。

最佳答案

使用 GNU grep像这样:

ld -v | grep -Po '[\d.]+' | head -n1
输出:
2.25.1
在这里, grep使用以下选项: -P : 使用 Perl 正则表达式。 -o :仅打印匹配项(每行 1 个匹配项),而不是整行。 [\d.]+ :任何数字或文字点,重复 1 次或多次。
另见:
grep manual
perlre - Perl regular expressions

关于regex - 提取版本号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65703712/

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