在bash中获得模式的完全匹配

时间:2016-07-05 22:24:35

标签: regex string bash matching

我在使用bash完全匹配模式时遇到问题。比方说,我只想在我的文件扩展名之前匹配字母,如#34; test.bam",但是如果包含数字," t1st.bam"我得到了这个输出:" st"。

hello="t1est.bam"
re="([a-zA-Z]+)\.bam"


if [[ $hello =~ $re ]]; then

    result=${BASH_REMATCH[1]}
else
    echo "unable to parse string"
fi
echo "$result"

如果提供非字母字符并进入“其他”字样,我希望它能够完全匹配模式。 block.Thanks

1 个答案:

答案 0 :(得分:2)

如果您希望匹配从字符串的开头开始,请添加^锚点:

re='^([a-zA_Z_]+)\.bam'