gpt4 book ai didi

regex - 如何在 bash 中检查版本格式的输入字符串 (n1.n2.n3)

转载 作者:行者123 更新时间:2023-11-29 09:05:43 25 4
gpt4 key购买 nike

我编写了一个脚本来更新某个文件的版本。我需要检查用户的输入是否为版本格式,所以我没有完成添加那些重要文件中不需要的数字。我这样做的方法是添加一个新值 version_check,我在其中删除我的正则表达式模式,然后进行 if 检查。

version=$1
version_checked=$(echo $version | sed -e '/[0-9]\+\.[0-9]\+\.[0-9]/d')

if [[ -z $version_checked ]]; then
echo "$version is the right format"
else
echo "$version_checked is not in the right format, please use XX.XX.XX format (ie: 4.15.3)"
exit
fi

这适用于 XX.XX 和 XX.XX.XX,但它也允许 XX.XX.XX.XX 和 XX.XX.XX.XX.XX 等。所以如果用户输入错误,它将输入错误文件上的数据。如何让 sed 正则表达式只允许 3 对由点分隔的数字?

最佳答案

改变你的正则表达式:

/[0-9]\+\.[0-9]\+\.[0-9]/

为此:

/^[0-9]*\.[0-9]*\.[0-9]*$/

关于regex - 如何在 bash 中检查版本格式的输入字符串 (n1.n2.n3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263661/

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