Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyrażenia regularne - wyraz poprzedzający i następny
Dapi
post
Post #1





Grupa: Zarejestrowani
Postów: 186
Pomógł: 13
Dołączył: 7.08.2009

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


Witam.

Próbuję napisać wyrażenie regularne, które przykładowo usunie mi pogrubione wyrazy, ale zostawi w spokoju wyrazy pogrubione i pochylone (z założeniem, że pochylenie będzie przed pogrubieniem => <i><b>Lorem ipsum</b></i>). Brzmi może zawile, dlatego mały przykładzik.

Przed:
aaabbbcccdddeeefff

Po:
aaacccdddfff

  1. $string1 = preg_replace("/(?![i\])[b\](.*?)[\/b\](?![\/i\])/si", '', $string);
  2. $string2 = preg_replace("/([i\]){0}([b\]){1}(.*?)([\/b\]){1}([\/i\]){0}/si", '', $string);

Ani jedno, ani drugie działa tak jak bym chciał, usuwając za dużo.

Jak powinno wyglądać poprawne wyrażenie, spełniające moje wymagania?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lord2105
post
Post #2





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


Cytat(Dapi @ 25.08.2013, 00:00:08 ) *
lord2105, troszeczkę za szybko chciałem odpisać, że działa, ale niestety po testach jednak działa tak jak moje kody, czyli usuwa za dużo (IMG:style_emoticons/default/sad.gif)
_Borys_, Twój kod działa dokładnie tak jak chcę, przynajmniej na razie (IMG:style_emoticons/default/wink.gif) Reszta wyjdzie w praniu, ale miejmy nadzieję, że będzie dobrze (IMG:style_emoticons/default/smile.gif)

Dzieki Wam obu


Usuwa za dużo to znaczy? Podaj swoją pełną wartość zmiennej string
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: 11.10.2025 - 01:51