ďťż
Podstrony
|
telcocafeedit: Problem rozwiązany :* podziękowania dla Coldpeera :* (wyjaśnienie w ostatnim poście)Trzymam w zmiennej stronę, z której wyciągam informację. Gdy pobieram je z danej linijki pliku, ciąg "(.*?)" spisuje się prawidłowo. Jednak nie mam pojęcia, jakiej matrycy użyć, by brane pod uwagę były znaki nowej linii (\n oraz \r\n) oraz tabulatory (\t). Kombinowałem na różne sposoby i nic :kwasny: a wszelkie znalezione rozwiązania na podobne kłopoty nie funkcjonowały poprawnie :kwasny: Oto ciąg, na którym wyrażenie się haczy i zwraca pustą tablicę (uwidoczniłem ręcznie białe znaki):(...) <br><b>tekst</b></td>#13#09#09#09#09#09#09#09#20#20#20#20#20#20#20#20#20< td><div><b>tekst2</b></div></td> (...)Przypomnę: #13 - \n - znak nowej linii; #09 - \t - tabulator; #20 - spacja. A w ten sposób próbowałem:preg_match('/<b>(.*?)<\/b>(.*?)< div><b>(.*?)<\/b><\/div>/', $tekst, $tablica); Pomożecie :> ? PS Dopiero dzisiaj zacząłem "zabawę" z wyrażeniami regularnymi, więc jeśli gdzieś popełniłem duży błąd, nie bijcie :P Użytkownik DJ_ProG edytował ten post 28 lipiec 2007, 13:58 . określa dowolny znak z wyjątkiem znaku nowego wiersza Użyj \n i \t w wyrażeniu. Użytkownik andrzej_aa edytował ten post 27 lipiec 2007, 21:09 Kombinowałem różnie... Lepiej podaj przykład zastosowania, bo moja wyobraźnia wstawiania tych znaków już się skończyła. I prosiłbym o sprawdzone metody. http://www.gajdaw.pl/php/wyrreg.html[ \t\n\r] badz \s http://osteele.com/tools/rework/ do testowania wyrażen Użytkownik polasek edytował ten post 27 lipiec 2007, 22:43 ja tam z zasady daje str_replace z tablica bialych znakow :) tzn \r \n \t :) dziala dobrze :) z tego co wiem to w RegExpach jest przelacznik ignorujacy nowa linie :) http://www.gajdaw.pl/php/wyrreg.html[ \t\n\r] badz \s http://osteele.com/tools/rework/ do testowania wyrażen Stron z opisami widziałem już tysiące, ale nigdzie nie ma konkretnego działu dotyczącego mojego problemu - AFAIR było tylko na stronach Mozilli, ale i tak nic to nie pomogło. A co do znaków, to sam również je znam :P Lepiej powiedz mi, jak mam je wstawić do mojej matrycy, by chodziło. Bo moje próby nawet w tym parserze online, do którego link podałeś kończą się fiaskiem. ja tam z zasady daje str_replace z tablica bialych znakow :) tzn \r \n \t :) dziala dobrze :) z tego co wiem to w RegExpach jest przelacznik ignorujacy nowa linie :) Wszystko pięknie ładnie, ale biorąc pod uwagę wagę strony przetwarzanej przeze mnie - ~200kb (!), to taka operacja nie będzie najszybsza, i będę musiał czekać dwukrotnie - na str_replace() i na preg_match(). A tak to by się załatwiło za jednym razem, i zawsze o 50% szybciej ;) A przełącznik może i jest, ale nie mam pojęcia jak się je stosuje :kwasny: Problem został rozwiązany - podziękowania kieruję do Coldpeera :) A chodzi o to, by na samym końcu dodać owy przełącznik, w postaci litery "s". Czyli: /<b>(.*?)<\/b>(.*?)<div><b>(.*?)<\/b> <\/div>/s Użytkownik DJ_ProG edytował ten post 28 lipiec 2007, 14:02 |
|||
Sitedesign by AltusUmbrae. |