Контекст
Я пытаюсь использовать регулярное выражение для извлечения имени репозитория из ссылки клона github https, и я не могу заставить BASH_REMATCH работать.
Для контекста я пишу это как файл .sh и запускаю его в Git Bash.
Кодовая логика
Как вы увидите ниже, я в основном добавляю ссылку клона https и также предоставляю шаблон регулярных выражений. Я пробовал это на https://regex101.com/, и регулярное выражение правильно вытаскивает последний бит строки:
/ liam_test_3.git
С его помощью также вытащить определенную группу захвата только из имени хранилища:
liam_test_3
Но код, который я пытался протестировать ниже, по умолчанию использует оператор "else" и выдает "no match".
код
#!/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;