Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyrażenia regularne troche inaczej
Forum PHP.pl > Forum > Przedszkole
craker
Witam,
mam taki problem mam takie oto teksty (przykładowe)

Cytat
Ala ma kota więc go głaska, kot był chory i był u lekarza, Ala wtedy bardzo zesmutniała.

i
Cytat
kot wszedł na drzewo, więc Ala chciała go ratować, niestety jej się nie udało bo miała zlamaną nogę, kot zszedł z drzewa i podszedł do Ali


i chce zrobić coś takiego że pierwsze wystąpienie słowa Ala zamienie na Kasia, pierwsze wystąpienie kot na mysz, a pozostałe wystąpienia Ala na zuzia i pozostałe wystąpienia słowa kot na szczur.

Czy da sie coś takiego zrobić a jeśli tak to jak.

Proszę o pomoc bo już nie wiem jak sobie poradzić
kamilkosinski
Kod
$pattern = array( '/Ala(\W.*)/i', '/kot(\W.*)/i', '/Ala(\W)/i', '/kot(\W)/i' );
$replacement = array( 'Kasia\1', 'mysz\1', 'Zuzia\1', 'szczur\1' );

+ preg_replace

Nie poradzi sobie z odmianą w języku polskim tj. Ala/Ali/Alę , ale jeśli będzie Ci to potrzebne to powinieneś dać radę dopisać.
craker
no ok, ale to jest dobre jeśli wiemy ile dokładnie jest wystąpień takiego słowa a w przypadku gdy zdań będzie wiecej itp to sobie nie poradzi raczej
kamilkosinski
Cytat(craker @ 18.10.2007, 20:30:36 ) *
no ok, ale to jest dobre jeśli wiemy ile dokładnie jest wystąpień takiego słowa

próbowałeś to uruchomić?
dla: ala ala kot kot ala kot ala kot kot kot kot ala
dostaję: Kasia Zuzia mysz szczur Zuzia szczur Zuzia szczur szczur szczur szczur Zuzia

Cytat(craker @ 18.10.2007, 20:30:36 ) *
a w przypadku gdy zdań będzie wiecej itp to sobie nie poradzi raczej

ilość zdań? To jak w końcu ma zamieniać? Dla każdego zdania, czy dla całego tekstu?
"Raczej" nie poradzi? Jeszcze raz zapytam, próbowałeś uruchomić?
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.