регулярное выражение в выражении bash
У меня есть 2 вопроса о регулярных выражениях в выражении bash.
1. не жадный режим
local temp_input='"a1b", "d" , "45"'
if [[ $temp_input =~ \".*?\" ]]
then
echo ${BASH_REMATCH[0]}
fi
Результат
"a1b", "d" , "45"
В яве
String str = "\"a1b\", \"d\" , \"45\"";
Matcher m = Pattern.compile("\".*?\"").matcher(str);
while (m.find()) {
System.out.println(m.group());
}
Я могу получить результат ниже.
"a1b"
"d"
"45"
Но как я могу использовать не жадный режим в Bash?
Я могу понять, почему \ "[^ \ "] \" работает.
Но я неЯ не понимаю, почему \ ".? \» не работай.
2. глобальные матчи
local temp_input='abcba'
if [[ $temp_input =~ b ]]
then
#I wanna echo 2 b here.
#How can I set the global flag?
fi
Как я могу получить все спички?
PS: я только хочу использовать регулярные выражения.
По второму вопросу, извините за путаницу.
Я хочу повторить "б" и "б", не считайте "б".
Помогите!