Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyrażenia regularne ciąg dalszy
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.

Znowu po paru godzinach prób ciągle mi nie wychodzi, moja zmora wyrażenia regularne czuwa nade mną.

Chcę ze stringu <form action="wszystki znaki!i2qiejiaskm$#@4"> wyjąć to co jest w " " i mi nie wychodzi.

Próbowałem takimi sposobami:

action="(.*)[^"]">

((action=")(.*)(">){1})

#action\=\".*\"\>#

żaden z nich nei stety mi dobrze nei działa (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) , używam funkcji preg_math_all()

proszę o pomoc!

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





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Ale tylko z jednego znacznika? Jeśli tak, użyj preg_match(). Jeżeli chcesz więcej, to w OPT 1 używałem następującego kodu do wyciągnięcia wszystkich atrybutów:

Kod
preg_match_all('#([a-zA-Z0-9\_]+)\="((.*?)[^\\\\])"#s', $tekst, $found);


Zrób sobie potem var_dump() na $found, by sprawdzić, jak rozłożone są dane w tablicy wynikowej i porównaj sobie z wyrażeniem, żeby zrozumieć zasadę jego działania.

Kod ten ma jedną wadę, mianowicie jeśli obok atrybutów w znaczniku znajdą się śmieci, zostaną one zignorowane. Dlatego później zrezygnowałem z wyrażeń na rzecz bardziej łopatologicznego parsera.

Ten post edytował Zyx 28.12.2008, 13:28:28
Go to the top of the page
+Quote Post
misiek172
post
Post #3





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

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


super działa!

dzięki śliczne!
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: 26.09.2025 - 04:43