2012-12-05 9 views
5

W Aptana (Eclipse), chcę, aby zastąpić w wielu plików PHP tablicy asocjacyjnej przez obiekty:Eclipse/Aptana wyszukiwania regex i zastąpić

$requete["something"] 

przez

$row->something 

Próbowałam to SZUKAJ:

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

z, zmienić:

\$row->$1 

ale silnik regex zajmuje tylko ostatni znak szukania: g czegoś

Wszelkie pomysły mile widziane! Dzięki

Odpowiedz

2

Powodem, że wyrażenie regularne pasuje tylko do ostatniego znaku grupy, jest znak plusa poza grupą dopasowania do słów. Również okres jest niepotrzebny.

Aby rozwiązać regex, wymień okres po w ze znakiem plus

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

+0

Wielkie dzięki! Rozumiem mój błąd. A powyższe rozwiązanie działa również ... – Amoeba

1

Użyj \$requete\[\"(\w+?)\"\] dla regex w części wyszukiwania. Problem z bieżącym wyrażeniem regularnym polega na tym, że używasz kwantyfikatora poza grupą przechwytującą.

+0

wielkie dzięki !!! Ale dlaczego [] nie są obowiązkowe? ... – Amoeba

+0

'\ w' samo w sobie jest skrótem do reprezentowania klas znaków pasujących do znaków słownych (' [a-zA-Z0-9_] '). Więcej o klasach postaci tutaj http://www.regular-expressions.info/charclass.html –

Powiązane problemy