Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Podmiana frazy przez preg_replace() z pominięciem
caroon
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


Witam,
za pomocą wyrażeń regularnych i funkcji preg_replace(), muszę dokonać podmiany frazy A w zmiennej tekstowej, nie podmieniając tej samej frazy A występującej pomiędzy dwoma różnymi znacznikami.

Przykład - słowo 'dlugi' trzeba zamienić na 'krotki' nie zamieniając słowa pomiędzy znacznikami 11 i 22. Dodatkowa trudnoscią jest fakt, że w rzeczywistości, pomiędzy znacznikami może znaleźć się wszystko, z kodem w php, perlu itp. włącznie.

$string1 = "To jest jakis dlugi 11 dlugi 22 tekst";
$string2 = preg_replace('//', '', $string1);


Jak zapisać wyrażenie regularne dla $string2 w preg_replace() ? Może coś

Będę wdzięczny za wskazówki

Ten post edytował caroon 16.01.2009, 23:24:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
qba_rox
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $s1 = "To jest jakis dlugi 11 dlugi 22 tekst";
  3. $s2 = preg_replace('|(.*)dlugi(.*)(11.*22.*)|', '${1}krotki${2}${3}', $s1);
  4. ?>


przerabne, bo to dziala tylko jesli masz jedno wystapienie 'dlugi' przed 11. jak chcesz to obejsc, to zrob petle ktora trwa do momentu az przedostatnia zamiana rowna sie ostatniej zamianie (czyli nic nie zmienilismy). jest to nie wydajne na maksa, ale jest pozno wiec tylko to mi przyszlo do glowy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:30