Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana - preg_replace...
Forum PHP.pl > Forum > PHP
Rafael6666
Mam pewien problem... A więc, załóżmy, że mam takie wyrażenie:

Kod
Ala nie ma [kota|psa|konia] bo lubi psa i konia...


Chcę zamienić wyraz konia na lwa, ale tylko tam gdzie nie znajduje się pomiędzy [, ].

Chcę uzyskać coś takiego:

Kod
Ala nie ma [kota|psa|konia] bo lubi psa i lwa...


Proszę o pomoc smile.gif ...

OK, z tym sobie już poradziłem...

Mam jeszcze jedno pytanie. Czy da się w preg_replace brać pod uwagę wielkość liter wyrażenia?
marcio
Co do pyt. 1 to trza pomobinowac
A do 2 to o co ci dokladnie chodzi zeby zrobic wyrazenie regularne tylko dla malych liter to ereg() a jak moga byc male duze lub obydwa to preg_replace() i eregi() w preg_replace dla malych i duzych dajesz taki zakres a-zA-Z jesli o to chodzi.
Rafael6666
Jak zmienię z preg_replace na ereg_replace, to nic się wtedy nie dzieje...

Moje wyrażenie wygląda tak:

Kod
$text = ereg_replace('/([^\||\[])konia([^\||\]])/is', '\\1lwa\\2', $lol);


Przypominam, że wyrażenie pod spodem działa:

Kod
$text = preg_replace('/([^\||\[])konia([^\||\]])/is', '\\1lwa\\2', $lol);
glorification
popatrz sobie na cos co jest dostepne od php 5 tj lookaround w postaci lookahead i lookbehind ... w skrocie mozesz dopasowac cos co wystepuje po czyms lub przed czyms okreslonym w twoim wyrazeniu ... wyrazenia z lookaround sa niemal niemozliwe do zastapienia tradycyjnymi metodami ... np . w javascript dziala tylko lookahead , w php dziala to podobnie ale masz jeszcze 'spojrzenie na to co jest przed tym czego szukasz'...

g.
marcio
moze to ci pomoze ogolna skladnia wyrazen regularnych
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.