Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> nieszcęsne wyrażenia regularne :)
misiek172
post
Post #1





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


Witam.

Kombinuje i nic mi nie chodzi (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Jak powinno wyglądać wyrażenie regularne które z textu usunie wszystkie komentarze, których jest dużo i czasami są zagnieżdżone jedne w drugich.

czyli ma usunac takie rzeczy <!-- (.*) ->

Pozdrawiam, Łukasz.
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod
preg_replace('/<!--(.*?)-->/is','',$tekst);


EDIT// Dodałem jeszcze jeden znak "-" przy zamykaniu komentarza.

Ten post edytował wookieb 19.02.2009, 12:06:17
Go to the top of the page
+Quote Post
Kihol
post
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 6
Dołączył: 20.06.2005
Skąd: Pyskowice

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


po pierwsze zagnieżdżanie komentarzy nie ma żadnego sensu,

ale ta metoda i tak da radę w takim przypadku (testowałem), wystarczy wyrażenie : <!--.*-->
bez () i spacji. Wyrażenie szuka wszystkich ciągów zaczynających się od <!-- i kończących na --> więc wszystko wyłapie.
Go to the top of the page
+Quote Post
webdevil
post
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 18
Dołączył: 2.02.2009

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


Cytat(wookieb @ 19.02.2009, 11:53:46 ) *
Kod
preg_replace('/<!--(.*?)->/is','',$tekst);


z ciekawości - po co dajesz pytajnik po gwiazdce? gwiazdka oznacza dowolną ilość znaków (łącznie z zerem)

Kod
preg_replace('/<!--(.*)->/is','',$tekst);


chyba że mi się coś pomyliło..

Ten post edytował webdevil 19.02.2009, 12:00:14
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Chryste...
Ty wykonajcie sobie panowie cos takiego
  1. <?php
  2. $tekst='<!-- -->
  3.  
  4.  
  5. sdfgsd fgsdf<!--dfgsdfgsdfg-->
  6. gsdffg s
  7. dfg
  8. sdfg sdf g
  9. <!--dfgsdfgsdfg-->
  10.  
  11. ';
  12. echo preg_replace('/<!--(.*)-->/is','',$tekst);
  13. ?>


Dodajcie potem ? po * i porównajcie wyniki.
I juz teraz bedziecie wiedziec po co to "?". To sie nawet ładnie nazywa jest to ograniczenie zachłanności wyrażenia do leniwego

Btw. Nie wolno zagniedzac komentarzy http://www.kurshtml.boo.pl/html/komentarz,tekst.html

Ten post edytował wookieb 19.02.2009, 12:05:45
Go to the top of the page
+Quote Post
webdevil
post
Post #6





Grupa: Zarejestrowani
Postów: 82
Pomógł: 18
Dołączył: 2.02.2009

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


Dzięki za wyjaśnienie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
misiek172
post
Post #7





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


super wszystko chodzi dzięki @wookieb , juz nie pierwszy raz ratujesz mi życie z tymi wyrażeniami regularnymi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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: 25.12.2025 - 15:01