Regular Expression

Sorry

Mitglied
Hallo,

ich habe folgenden regulären Ausdruck:
http://example.org/(.+).html(?=" target="_blank">hier</a> \| Beispiel)

mein Problem: ich muss diesen Part "(?=" target="_blank">hier</a> \| Beispiel)" abändern, da er nicht unterstützt wird.

Hier ein Beispiel: http://gskinner.com/RegExr/?34tp9 .
Das ganze hätte ich nach Möglichkeit gerne genau so nur das der zweite Part "(?=" target="_blank">hier</a> \| Beispiel)" durch anderen Ausdruck ersetzt werden müsste, nach Möglichkeit so, das letztendlich nur die URL als Match erkannt wird (wie oben).
 
Also ich kann nur immer wieder empfehlen für HML/XML DOMDocument zu verwenden. Das hat eine super API und ist auch zur Manipulation einzelner eigenschaften oder aber ganzer Zweige geeignet! [Vorraussetzung ist natürlich einigermaßen valides HTML]
 
Ich werd immer ignoriert *heul*
Sag mal was du genau amchen willst, ich zeig es dir mit DOMDocument
 
In diesem Fall wäre das für mich vermutlich ein recht großer aufwand, da ich den Regulären Ausdruck in einer Windows anwendung verwende. Du kannst mir allerdings gerne sagen, wie man den oben genannten Regulären Ausdruck in php mittels DOMDocument umsetzen könnte. Ich habe schon oft den Begriff gelesen kann aber noch nicht allzu viel damit anfangen, was sich dadurch sicherlich ändern würde
 
Ich habe nicht geanz verstanden, was du machen willst.

Aber um alle Links auszulesen:
PHP:
<?php

$html = <<<HTML
Beispiel 1<br/>
<strong>Download:</strong> <a href="http://example.org/irgendwas.html" target="_blank">hier</a> | Test 1<br/>
<strong>Download:</strong> <a href="http://example.org/irgendwas.html" target="_blank">hier</a> | Test 2<br/>
<strong>Download:</strong> <a href="http://example.org/irgendwas.html" target="_blank">hier</a> | Test 3<br/>

Beispiel 2<br/>
<strong>Download:</strong> <a href="http://example.org/irgendwas.html" target="_blank">hier</a> | Test 1<br/>
<strong>Download:</strong> <a href="http://example.org/irgendwas.html" target="_blank">hier</a> | Test 2<br/>
<strong>Download:</strong> <a href="http://example.org/irgendwas.html" target="_blank">hier</a> | Test 3<br/>
HTML;

$doc = new DOMDocument();
$doc->loadHTML($html);

$links = array();

$elements = $doc->getElementsByTagName('a');
foreach ($elements as $element) {
	$links[] = $element->getAttribute('href');
}

var_dump($links);

Code:
array(6) { [0]=> string(33) "http://example.org/irgendwas.html" [1]=> string(33) "http://example.org/irgendwas.html" [2]=> string(33) "http://example.org/irgendwas.html" [3]=> string(33) "http://example.org/irgendwas.html" [4]=> string(33) "http://example.org/irgendwas.html" [5]=> string(33) "http://example.org/irgendwas.html" }

Natürlich wäre es auch möglich, das traget-Attribut direkt zu löschen. Und zwar so:
PHP:
$element->removeAttribute('target');

Es sind auch noch weitere Modifikationen möglich.
 
Zurück