Ich versuche, den regulären Ausdruck zu finden, der einem Pfad des Formats ./foo/baz/bar/filename.c
in einem [[ $string =~ $regex ]]
Kontext entspricht.
Ich würde erwarten, dass das regex=$'(^\./).*$'
übereinstimmt, aber es bleibt leer. Ich habe vergeblich ${BASH_REMATCH[1]}
versucht, die Klammern zu umgehen oder das wegzulassen ..*
Ich habe herausgefunden, wie der Zugriff auf verschachtelte Erfassungsgruppen über BASH_REMATCH
andere $string
Inhalte gut funktioniert (ein zusätzlicher Index für die Verschachtelungsebene und die Erfassungsgruppe rechts), aber hiermit kann ich es nicht anpassen.
Was ist mein Versagen?
Antwort1
Funktioniert auch mit der $string
Variable in oder in einfachen Anführungszeichen ohne vorangestelltes Dollarzeichen.[[ $string =~ $pattern ]]
$'...'
'...'