我在使用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
答案 0 :(得分:2)
如果您希望匹配从字符串的开头开始,请添加^
锚点:
re='^([a-zA_Z_]+)\.bam'