2012-12-05 21 views
5

In Aptana (Eclipse), voglio sostituire in un sacco di file PHP array associativo da oggetti:Eclipse/Aptana ricerca regex e sostituire

$requete["something"] 

da

$row->something 

ho provato questo, RICERCA:

\$requete\[\"([\w.])+\"\] 

con, SOSTITUIRE:

\$row->$1 

ma il motore regex richiede solo l'ultimo carattere della ricerca: g di qualcosa

Tutte le idee benvenuti! Grazie

risposta

2

Il motivo per cui l'espressione regolare corrisponde solo all'ultimo carattere del gruppo è che il segno più si trova al di fuori del gruppo di corrispondenza delle parole. Inoltre, il periodo non è necessario.

Per fissare il Regex, sostituire il periodo successivo alla w con il segno più

\$requete\[\"([\w]+)\"\]

+0

Grazie mille !!! Capisco il mio errore. E la soluzione sopra funziona pure ... – Amoeba

1

Utilizzare \$requete\[\"(\w+?)\"\] per regex nella parte di ricerca. Il problema con la tua espressione regolare è che stai utilizzando il quantificatore al di fuori del gruppo di acquisizione.

+0

Grazie mille !!! Ma perché [] non è obbligatorio? ... – Amoeba

+0

'\ w' stesso è una scorciatoia per rappresentare classi di caratteri che corrispondono a caratteri di parole (' [a-zA-Z0-9_] '). Maggiori informazioni sulle classi di caratteri qui http://www.regular-expressions.info/charclass.html –