Я пытаюсь сопоставить несколько буквенно-цифровых значений (это число может отличаться) из строки и сохранить их в массив группы захвата bash. Тем не менее, я получаю только первый матч:
mystring1='<link rel="self" href="/unix//api/clouds/1/instances/1BBBBBB"/> dsf <link rel="self" href="/unix//api/clouds/1/instances/2AAAAAAA"/>'
regex='/instances/([A-Z0-9]+)'
[[ $mystring1 =~ $regex ]]
echo ${BASH_REMATCH[1]}
1BBBBBB
echo ${BASH_REMATCH[2]}
Как видите, оно соответствует первому значению, которое я ищу, но не второму.
Вероятно, стоит упомянуть знаменитый Вы не можете разобрать HTML с регулярным выражением .
—
Цифровая травма
echo "$mystring1" | grep -oE '/instances/([A-Z0-9]+)'
?