Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.07.2012, 15:45
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Регулярное выражение
Имеется следующая строка:
<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&rsquo;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&rsquo;124</a>
       		                        </td>
            </tr>


нужно спарсить значение 499&rsquo;198, при этом можно ориентироваться на <strong>Ref pages</strong> и теги, так как классы и атрибуты меняются, Нужно учитывать что дальше многократно повторяются подобные блоки кода, но у всех разное <strong>Ref pages</strong> . В место 499&rsquo;198 может быть просто число или что то типа этого 499&rsquo;198&rsquo;654

Что я сделал на данный момент:
text.match(/<strong>Ref pages<\/strong>[\s\S]+>(\d|&rsquo;)+<\/a>/)

но нифига не работает.

Последний раз редактировалось Magneto, 18.07.2012 в 15:55.
Ответить с цитированием
  #2 (permalink)  
Старый 18.07.2012, 16:25
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Возможно, если вы хотите искать до ближайшего "</a>", нужно сделать квантификатор возле [\s\S] ленивым.
text.match(/<strong>Ref pages<\/strong>[\s\S]+?>((?:\d|&rsquo;)+)<\/a>/)

Ещё ошибка: круглые скобки в (\d|&rsquo+ ловят только последний \d или &rsquo; чтобы выловить всю последовательность, я исправил на ((?:\d|&rsquo+)

Последний раз редактировалось oneguy, 18.07.2012 в 16:34.
Ответить с цитированием
  #3 (permalink)  
Старый 18.07.2012, 16:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<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&rsquo;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&rsquo;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>
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2012, 17:01
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

/\d+&[a-z]+;\d+/
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 18.07.2012, 22:30
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Ребят, спасибо всем. Регулярка которую предложил oneguy 100% удовлетворяет требованиям.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение BorisBritva jQuery 3 15.03.2012 19:07
Помогите написать регулярное выражение! Dorian_bs Общие вопросы Javascript 7 09.12.2011 09:12
регулярное выражение leny Общие вопросы Javascript 1 24.09.2011 17:30
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29