2016-07-15 34 views
0

Ich versuche, ein Regex-Muster, das Links erfasst.JavaScript Regex Positive Lookahead keine sofortige Verfolgung des Begriffs

Der Begriff, den ich z. "ein anderer" wird nicht sofort von der Verbindung verfolgt. Es gibt zufälligen HTML-Text dazwischen.

Danach gibt es einen Link, den ich erfassen möchte.

Kann der reguläre Ausdruck den Link sofort finden?

Ich versuchte es mit positivem Lookahead, aber ich erfuhr, dass es sofort von dem gegebenen Begriff gefolgt werden sollte, der in diesem Fall nicht wahr ist.

Hier sind meine 2 "Testseiten".

https://macrofan.lima-city.de/testpage.html

https://macrofan.lima-city.de/testpage2.html

+0

Suchen Sie in einer HTML-Dom-Struktur/geladenen Website oder in einem HTML-Text, der (zum Beispiel) von einer Ajax-Anfrage zurückgegeben wurde? Möchten Sie die Tag-ID des Ankerelements, das Ankerelement (dom) selbst oder nur den HTML-Text für dieses Tag abrufen? – elfwyn

Antwort

0

Wenn Sie die erste Verbindung aufnehmen möchten, können Sie diese RegExp verwenden:

another.*"([a-zA-Z-]*\.html)" 

Dies setzt voraus, dass Ihre Links wie in Ihrem Beispiel festgelegt sind, die Sie sonst müsste dies vor der Erfassungsgruppe ändern, um Ihre Anforderungen zu erfüllen.

0

Sie können alle href attibutes erhalten, indem mit ..

var m = htmlString.match(/href="([^\'\"]+)/g) 

Es Array aller href Matches zurück.
Sobald Sie das Array haben, können Sie den ersten oder letzten Link abrufen, was Sie wollen.