Регулярное выражение для извлечения HREFS - PullRequest
0 голосов
/ 13 июня 2010

Я ищу регулярное выражение, которое может извлечь href из этого:

<a href="/tr/blog.php?post=3593&user=930">

На странице сотни ссылок, поэтому мне нужно извлечь только те, которые содержат

/tr/blog.php

Итак, в конце концов я должен остаться со списком ссылок, которые начинаются в / tr / blog

Спасибо за любую помощь. Это действительно озадачивает меня.

Это RegEx, которым я сейчас пользуюсь, но он соответствует всем.

/href\s*=\s*\"*[^\">]*/ig;

Ответы [ 3 ]

2 голосов
/ 13 июня 2010

Вы можете попробовать что-то вроде href=\"(/tr/blog.php[^"]*)\" (захватывает в группу 1), но в целом вам не следует использовать регулярное выражение для разбора HTML .

0 голосов
/ 10 августа 2013

Это немного поздно, но теперь, когда это будущее, вам даже не нужно регулярное выражение:

document.querySelectorAll("a[href*='/tr/blog.php']") даст вам ссылки, которые содержат эту строкуили вы можете найти те, которые начинаются с этой строки document.querySelectorAll("[href^='/tr/blog.php']").

0 голосов
/ 14 июня 2010
<body> <a href="/tr/blog.php?lol">fslk</a> 

<script>

    var anchors = document.getElementsByTagName('a'), captured = [];

    for ( var i = 0, l = anchors.length, href, r = /tr\/blog\.php/; i<l; ++i ) {
         href = this.href;
         if ( r.test( href ) ) {
             captured.push( this )
         }
    }

    // do what u want with captured links
    for ( var l = captured.length; l--; ) {
        alert( captured[l].href )
    }

</script>

</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...