![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 187 Pomógł: 0 Dołączył: 24.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
chcę aby preg_replace zamienił to co znajdzie na to co zwróci funkcja
funkcja "tourl()" zamiast dostawać wartości trafione dostaje "\\1" , a mi chodzi o to że ma dostać to co pasuje następnie funkcja to przerabia i pregmatch zamienia na to co zwróciła funkcja. Nie działa ... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
W nawiasach kwadratowych podaje się klasę znaków do wyszukiwania, więc wyrażenie [^<a href] nie oznacza:
- dopasuj wszystkie znaki aż do napotkania "<a href" tylko: - dopasuj wszystkie znaki, które nie są: "<", "a", " ", "h", "r", "e", "f" A co do pierwszego problemu, to wyrażenia regularne są domyślnie 'zachłanne', czyli będą się starały dopasować jak najwięcej znaków tylko się da, ale żeby pasowało do wzorca. Używając znaku pytajnika możemy zamienić wyrażenie na 'niezachłanne', czyli starające się dopasować jak najmniej znaków tylko się da, ale żeby pasowało do wzorca. Tak więc wyrażenie: <table>(.*)</table> dopasuje: Cytat asfsa <table> asdasd</table> dsfds <table> saf saf </table> safsa <table> sad sa asfdsad </table> asdsad natomiast wyrażenie: <table>(.*?)</table> dopasuje: Cytat asfsa
<table> asdasd</table> dsfds <table> saf saf </table> safsa <table> sad sa asfdsad </table> asdsad |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 02:00 |