Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] wyrażenia regularne, mały problem
-___-
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


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!


--------------------
Go to the top of the page
+Quote Post
-__-
post
Post #3





Goście







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ć
Go to the top of the page
+Quote Post
Kicok
post
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


\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. ?>


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 14:24