假设源字符串是一个路径
/home/test/test/文件名
.ext
我需要匹配路径中的文件名
并在BASH_REMATCH中捕获它
我试了上百个图,真是让人热泪盈眶,最接近的是
/[^/]*.$
但它只匹配 filename.ext
和\/([a-zA-Z0-9]+)\.
但它匹配/文件名。
谢谢
最佳答案
您可以使用:
s='/home/test/test/filename.ext'
[[ "$s" =~ /([^./]+)\. ]] && echo "${BASH_REMATCH[1]}"
filename
关于regex - bash 正则表达式 "find anything between last slash and dot",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27906134/