Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nieszcęsne wyrażenia regularne :)
Forum PHP.pl > Forum > PHP
misiek172
Witam.

Kombinuje i nic mi nie chodzi 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.
wookieb
Kod
preg_replace('/<!--(.*?)-->/is','',$tekst);


EDIT// Dodałem jeszcze jeden znak "-" przy zamykaniu komentarza.
Kihol
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.
webdevil
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..
wookieb
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
webdevil
Dzięki za wyjaśnienie smile.gif
misiek172
super wszystko chodzi dzięki @wookieb , juz nie pierwszy raz ratujesz mi życie z tymi wyrażeniami regularnymi winksmiley.jpg
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.