我有以下字符串/path/to/my-jar-1.0.jar
,我正在尝试为其编写 bash 正则表达式以提取my-jar
.
现在我相信以下正则表达式会起作用:([^\/]*?)-\d
但我不知道如何让 bash 运行它。
以下:echo '/path/to/my-jar-1.0.jar' | grep -Po '([^\/]*?)-\d'
捕获my-jar-1
在 BASH 中,您可以执行以下操作:
s='/path/to/my-jar-1.0.jar'
[[ $s =~ .*/([^/[:digit:]]+)-[[:digit:]] ]] && echo "${BASH_REMATCH[1]}"
my-jar
Run Code Online (Sandbox Code Playgroud)
这里"${BASH_REMATCH[1]}"
将打印捕获的组 #1,它是 first 中的表达式(...)
。