首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BASH_REMATCH没有输出匹配

BASH_REMATCH没有输出匹配
EN

Stack Overflow用户
提问于 2019-07-02 08:13:05
回答 1查看 255关注 0票数 0

上下文

我试图使用regex从github克隆链接中提取存储库名称,但我似乎无法让BASH_REMATCH工作。

对于上下文,我将它写成一个.sh文件并在Git中运行。

码逻辑

如下所示,我基本上提供了一个克隆https链接,并提供了regex模式。我在https://regex101.com/上尝试了这一点,regex正确地提取了字符串的最后一部分:

/liam_test_3.git

它还提取了存储库名称的特定捕获组:

liam_test_3

但是下面我尝试测试的代码是默认的“否则”语句,并输出“无匹配”。

代码

代码语言:javascript
复制
#!/bin/bash

# $1 = SSH Clone Link
# $2 = Github Organisation


CLONE="https://github.cloud.companyname.com/Organisation/liam_test_3.git";
re="\/(?!.*\/)(.*).git";

echo "$CLONE"
echo "$re"

if [[ $CLONE =~ $re ]]
then 
    repo_dir=${BASH_REMATCH[1]}
    echo "Your repo name is $repo_dir"
else
    echo "No Match"
fi;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-02 08:23:37

尝试re="([^/]*)\.git"; --这将匹配url的最后一部分(最后/之后的所有内容),并捕获存储库名称。

请注意,您需要在git之前转义.,否则这将匹配url中的第一个git,因为.将匹配https://github的第二个/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56848052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档