Регулярное выражение
Имеется следующая строка:
<tr> <th title="Referring Pages" class="border-top pull-05top"><strong>Ref pages</strong></th> <td class="font90 border-top"> <a href="/site-explorer/backlinks/domain/mail.ru" onClick="ProcessObj.show();_gaq.push(['_trackEvent', 'SiteExplorer', 'Turn off backlinks filter in backlinks']);">499’198</a> </td> </tr> <tr class="zebra"> <th title="Backlinks" class="pull-2right strong "><strong>Total Backlinks</strong></th> <td class="font90"> <a href="/site-explorer/backlinks/domain/mail.ru/backlink" onClick="ProcessObj.show();_gaq.push(['_trackEvent', 'SiteExplorer', 'Turn on backlinks filter backlink in backlinks']);">502’124</a> </td> </tr> нужно спарсить значение 499’198, при этом можно ориентироваться на <strong>Ref pages</strong> и теги, так как классы и атрибуты меняются, Нужно учитывать что дальше многократно повторяются подобные блоки кода, но у всех разное <strong>Ref pages</strong> . В место 499’198 может быть просто число или что то типа этого 499’198’654 Что я сделал на данный момент: text.match(/<strong>Ref pages<\/strong>[\s\S]+>(\d|’)+<\/a>/) но нифига не работает. |
Возможно, если вы хотите искать до ближайшего "</a>", нужно сделать квантификатор возле [\s\S] ленивым.
text.match(/<strong>Ref pages<\/strong>[\s\S]+?>((?:\d|’)+)<\/a>/) Ещё ошибка: круглые скобки в (\d|’)+ ловят только последний \d или ’ чтобы выловить всю последовательность, я исправил на ((?:\d|’)+) |
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script> <table id=000> <tr> <th title="Referring Pages" class="border-top pull-05top"><strong>Ref pages</strong></th> <td class="font90 border-top"> <a href="/site-explorer/backlinks/domain/mail.ru" onClick="ProcessObj.show();_gaq.push(['_trackEvent', 'SiteExplorer', 'Turn off backlinks filter in backlinks']);">499’198</a> </td> </tr> <tr class="zebra"> <th title="Backlinks" class="pull-2right strong "><strong>Total Backlinks</strong></th> <td class="font90"> <a href="/site-explorer/backlinks/domain/mail.ru/backlink" onClick="ProcessObj.show();_gaq.push(['_trackEvent', 'SiteExplorer', 'Turn on backlinks filter backlink in backlinks']);">502’124</a> </td> </tr> </table> <script type="text/javascript"> Kawuka=String.fromCharCode(8217); var text = $("#000").html() var pattern='^[\\s\\S]*?<strong>Ref pages<\\/strong>[\\s\\S]*?>([0-9]+)'+Kawuka+'[\\s\\S]*<\\/a>[\\s\\S]*$'; var regexp = new RegExp(pattern,"ig"); alert(text.replace(regexp,'$1')) //?>(\\d+'+Kawuka+')+<\\/a> </script> |
/\d+&[a-z]+;\d+/
|
Ребят, спасибо всем. Регулярка которую предложил oneguy 100% удовлетворяет требованиям.
|
Часовой пояс GMT +3, время: 09:00. |