Autor Zpráva
capricorn
Profil
Zdravim,

mam tento regularni vyraz a retezec a ja potrebuji, aby kdyz souhlasi url adresa, tak aby se zapsala do pole a pokud neni v tagu <a> uvedeno nebo je prazdne title, target, tak aby se ulozila do pole prazdna hodnota. Snad jsem to napsal rozumitelne.


$data = '
<a href="http://www.example.com" title="title1">Test1</a>
<a href="http://www.example.com" title="title2">Test2</a>
<a href="http://www.example.com" title="">Test3</a>
<a href="http://www.example.com">Test4</a>
<a href="http://www.example.com" target="_blank">Test5</a>
';

preg_match_all('~<a href=\"http://www.example.com\" title=\"(.*)\" target=\"(.*)\">(.*)</a>~', $data, $match);

print_r($match);
bohyn
Profil
~<a\s+href="http://www\.example\.com"(?:\s+title="([^"]*)")?(?:\s+target="([^"]*)")?\s*>(.*?)</a>~i
capricorn
Profil
bohyn

Dekuji. Bez vysvetleni to, ale nepochopim. ;-) Mohl by mne prosim vysvetlit, co znamena:

\s+
:\s+
\s*

Predem dekuji.
bohyn
Profil
capricorn
\s+ = jeden nebo vice bilych znaku
\s* = zadny nebo vice bilych znaku
(?:) = zavorka ktera se nikam neuklada (non-matching)
AM_
Profil
\s znamená bílé znaky. + a * jsou kvantifikátory, + znamená "alespoň jeden", * znamená "libovolný počet" (tedy i žádný)
capricorn
Profil
bohyn AM_

Je to veda, ale ted to plne chapu, alespon tento vyraz. Dekuji za pomoc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: