wyrażenie regularne w wyrażeniu bash
Mam 2 pytania dotyczące wyrażenia regularnego w wyrażeniu bash.
1. tryb nie chciwy
local temp_input='"a1b", "d" , "45"'
if [[ $temp_input =~ \".*?\" ]]
then
echo ${BASH_REMATCH[0]}
fi
Wynik to
"a1b", "d" , "45"
W Javie
String str = "\"a1b\", \"d\" , \"45\"";
Matcher m = Pattern.compile("\".*?\"").matcher(str);
while (m.find()) {
System.out.println(m.group());
}
Mogę uzyskać wynik poniżej.
"a1b"
"d"
"45"
Ale w jaki sposób mogę używać trybu bez chciwości w bashu?
Mogę zrozumieć, dlaczego\" Prace.
Ale nie rozumiem dlaczego.?\" nie działa.
2. mecze globalne
local temp_input='abcba'
if [[ $temp_input =~ b ]]
then
#I wanna echo 2 b here.
#How can I set the global flag?
fi
Jak mogę zdobyć wszystkie mecze?
ps: Chcę tylko używać wyrażenia regularnego.
Na drugie pytanie, przepraszam za mylące.
Chcę echo „b” i „b”, nie liczyć „b”.
Wsparcie!