Sponsor-Board.de

Normale Version: Regex Problem, mehrere Abfragen in einem Pattern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich hab hier folgenden Code:

Code:
preg_match_all("!link.*?href=(.*?) !s",$page,$sources);


Das funktioniert auch soweit gut für folgendes Beispiel

Code:
<link rel="stylesheet" href="/resources/style.css" type="text/css" media="all" />


Aber, wenn die entsprechende Zeile so aussieht wie folgt, geht's nicht meh:

Code:
<link rel="stylesheet" href="/resources/style.css">


Das liegt ja daran, dass hier ein Leerzeichen ist zwischen (.*?) und !s,
jetzt dachte ich mir, kann ich einfach durch ein "|" mehrere Varianten einfügen, also

Code:
preg_match_all("!link.*?href=(.*?) |link.*?href=\"(.*?)\"|link.*?href='(.*?)'!s",$page,$sources);


Aber das will nicht so recht, hat jemand eine bessere Lösung?

Hab folgenden RegEx mal erstellt Wink:

Code:
^<link.*href=["|']([^"']*)["|'][^>]*>$


Input:

Zitat:
<link href="css/design.css" rel="stylesheet" />
<link href='css/design.css' rel="stylesheet" />
<link href='css/design.css' rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="/resources/style.css">


Output:

Zitat:
Array
(
[0] => <link href="css/design.css" rel="stylesheet" />
[1] => css/design.css
)

Array
(
[0] => <link href='css/design.css' rel="stylesheet" />
[1] => css/design.css
)

Array
(
[0] => <link href='css/design.css' rel="stylesheet" type="text/css" />
[1] => css/design.css
)

Array
(
[0] => <link rel="stylesheet" href="/resources/style.css">
[1] => /resources/style.css
)

Referenz-URLs