Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenia regularne ciąg dalszy
Forum PHP.pl > Forum > PHP
misiek172
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 haha.gif, używam funkcji preg_math_all()

proszę o pomoc!

Pozdrawiam, Łukasz.
Zyx
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.
misiek172
super działa!

dzięki śliczne!
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.