Sponsor-Board.de
Regex Problem, mehrere Abfragen in einem Pattern

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: Regex Problem, mehrere Abfragen in einem Pattern (/showthread.php?tid=43871)


Regex Problem, mehrere Abfragen in einem Pattern - k1ngk0ng - 25.11.2013 19:49

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?


RE: Regex Problem, mehrere Abfragen in einem Pattern - Sysix - 26.11.2013 14:31

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
)