Cytat(mateuszpi @ 9.09.2008, 20:25:33 )

JoShiMa właśnie takiej odpowiedzi się bałem. czytałem sporo o wyrażeniach regularnych ale za żadne skarby nie moge ich pojąć. do tej pory udawało mi się je omijać ale teraz chyba nie mam jak.
To błąd trzeba ćwiczyć, ćwiczyć i jeszcze raz ćwiczyć

Wyrażenia regularne wiele rzeczy upraszczają. A jak chcesz się ich pouczyć to się zainteresuj książkami do PERLa.
Aha i masz tu link do
testera wyrażeń regularnych. Bardzo przydatne narzędzie jak się ćwiczy.
Cytat(mateuszpi @ 9.09.2008, 20:25:33 )

twój kod który podałeś faktycznie znajduje i usuwa całe polecenia <a href jednak znika również to co jest za nimi. czyli z przykładu
$dane="tekst pierwszy <a href=fsdfsdfd>fsdfs</a> tekst drugi <a href=dadasd>fdsaffd</a> tekst trzeci";
pozostaje mi tylko "tekst pierwszy" a chciałbym tekst drugi i trzeci też zobaczyć

Moge prosić o dokładny kod bo raczej sam tych wyrażej nie rozgryze.
Aha... Tego, że masz tam w tekście więcej niż jeden link to nie powiedziałeś. Tak naprawdę powinien zostać tekst pierwszy i tekst trzeci. Zaraz coś pokombinuję.
Aaaa. Już masz
mateuszpi nudzi mi się to Ci wyjaśnię różnicę w moim wyrażeniu regularnym i w rozwiązaniu elemka.
Zaproponowane przez niego
<?php
?>
Mozna zapisac również w następujący sposób:
<?php
?>
Możesz sprawdzić, że zadziałają tak samo a to już jest bardzo podobne to tego co ja Ci zaproponowałam:
<?php
?>
Zasadnicza różnica tkwi w tym, że u elemka jest *? a u mnie *
* oznacza dopasowanie 0 lub więcej razy i jest kwantyfikatorem maksymalistycznym
*? też oznacza dopasowanie 0 lub więcej razy ale jest kwantyfikatorem minimalistycznym
Dlatego użycie * dopasuje ciąg od pierwszego <a do ostatniego /a> bo stara się dopasować jak najdłuższy ciąg znaków pasujący do wzorca, natopmiast użycie *? dopasuje najkrótsze możliwe ciągi między <a i /a> i w przypadku gdy w tekście masz kilka odnośników powycina ci je zgodnie z Twoimi oczekiwaniami.