Ich muss die Zugriffssyntax für eindimensionale Objekteigenschaft durch die Zugriffssyntax für Array-Elemente ersetzen.
Beispiele:
$variable -> child
$variable->child
beide sollten wie folgt umgewandelt werden:
$variable['child']
Antwort1
Finde was:
\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*) *-> *([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)
Ersetzen mit
$\1['\2']
Stellen Sie den Suchmodus natürlich als "regulärer Ausdruck" ein. Hier wird ein regulärer Ausdruck dargestelltPHP-VariableIst [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
.
Antwort2
Finden:(\$\w+) *-> *(\w+)
Ersetzen:$1['$2']
(\$\w+)
Erfasst ein Dollarzeichen und dann ein oder mehrere [a-zA-Z0-9_]-Zeichen*-> *
Übereinstimmung mit null oder mehr Leerzeichen, dann Bindestrich, dann größer als, dann null oder mehr Leerzeichen(\w+)
Erfassen Sie ein oder mehrere [a-zA-Z0-9_]-Zeichen
Verwenden Sie dann $1
und , $2
um den gewünschten dynamischen Ersetzungsvorgang mit Array-Syntax zu generieren.
Wie unter der anderen Antwort kommentiert, ist es nicht sinnvoll, nach einem oder mehreren wörtlichen Dollarzeichen ( \$+
) zu suchen, da es nur eines geben sollte – ich hoffe, Sie verwenden nicht „variable Variablen“ ( $$variable
), aber in diesem Kontext wäre es egal, wenn Sie das täten.