Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
___
Witam,
mam wyrażenie:

  1. <?php
  2. $text = preg_replace( '#(W)?'.$r['pattern'].'([:spac:].;,\nr])#si', '1' .$r['replace']. '2',  $text );
  3. ?>


$r['pattern'] w tym przypadku dla uproszczenia to aaa a $r['replace'] to AAA.

i mamy ciąg do zamiany

Kod
aaa bbb.aaa bbb abbb baaa


problem jest taki że ciąg baaa jest zamieniany na bAAA, natomiast jeśli zamiast (\W)? dam samo (\W) to nie zamienia, ale za to ciąg aaa z poczatku nie jest zamieniany. powyższe wyrażenie powinno zamienić ciąg na:

Kod
AAA bbb.AAA bbb abbb baaa

natomiast zamienia albo na

Kod
aaa bbb.AAA bbb abbb baaa


albo na

Kod
AAA bbb.AAA bbb abbb bAAA


Proszę o pomoc
ayeo
To chyba oczywiste, przecież baaa również pasuje do patterna. Musisz w patternie określić, że chodzi tylko o takie "aaa" przed, którym ciąg się zaczyna lub przed którym występuje spacja, kropka, przecinek, wykrzyknik itd Natomiast po nim wytepuje również kropka, przecinek,....,... lub koniec ciągu.

Pozdrawiam!
__
Cytat(ayeo @ 10.09.2008, 13:09:48 ) *
To chyba oczywiste, przecież baaa również pasuje do patterna. Musisz w patternie określić, że chodzi tylko o takie "aaa" przed, którym ciąg się zaczyna lub przed którym występuje spacja, kropka, przecinek, wykrzyknik itd Natomiast po nim wytepuje również kropka, przecinek,....,... lub koniec ciągu.

Pozdrawiam!


to wiem, a czy możesz mi pomóc questionmark.gif wiem że musze zmienić ale właśnie niemam pomysłu jak tego dokonać
Kicok
\b oznacza granicę wyrazu (początek albo koniec):
  1. <?php
  2.  
  3.    $text = 'ALA MA KOTA I MIESZKA W ALABAMIE';
  4.  
  5.    echo preg_replace( '#bALAb#', '<b>ALA</b>', $text );
  6.  
  7. ?>
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.