1
我有一個版本字符串,例如bash的參數代替數字一次或多次
version=1.2.23b2
我想有隻與b2
的最後一部分,所以我想這:
${version##*[0-9]*.[0-9]*.[0-9]*}
我的想法是,*
將意味着沒有或重複的領先模式,但實際上它意味着任何字符沒有或多次。所以我希望我的模式表達,這只是數字,一次或多次。
我有一個版本字符串,例如bash的參數代替數字一次或多次
version=1.2.23b2
我想有隻與b2
的最後一部分,所以我想這:
${version##*[0-9]*.[0-9]*.[0-9]*}
我的想法是,*
將意味着沒有或重複的領先模式,但實際上它意味着任何字符沒有或多次。所以我希望我的模式表達,這只是數字,一次或多次。
*
以glob模式匹配任何字符0次或更多次。
你可以在這裏使用擴展glob模式:
shopt -s extglob
echo "${version##+([0-9.])}"
b2
否則,您可以在這裏使用正則表達式:
version='1.2.23b2'
re='^[0-9]+.[0-9]+.[0-9]+(.+)'
[[ $version =~ $re ]] && echo "${BASH_REMATCH[1]}"
b2
即使這個表達式應該上面的工作:
re='^[0-9.]+(.+)'