2015-08-29 2 views
0

у меня есть текст, который выглядит следующим образом:Regex получить строку и поймать до конца

<a href="/track/867059" itemprop="url" class="evt-click" data-target="track"> 
          <span itemprop="name">Feel So Good </span> 
         </a> 
         <span class="featuring" data-target="featuring"></span> 
        </div> 
       </td> 
       <td class="artist"> 
        <div class="wrapper ellipsis"> 
         <a class="evt-click" href="/artist/7" data-target="artist" itemprop="byArtist">Jamiroquai</a> 
        </div> 
       </td> 
       <td class="album"> 
        <div class="wrapper ellipsis"> 
         <a class="evt-click" href="/album/98952" itemprop="inAlbum" data-target="album" >A Funk Odyssey</a> 
        </div> 
       </td> 
       <td class="length"> 
        <div class="wrapper" data-target="length"></div> 
       </td> 
       <td class="popularity" title="By popularity:7.85/10"> 
        <span class="note" data-target="note"></span> 
       </td> 
       <td class="added"> 
        <div class="wrapper ellipsis timestamp" data-target="added"> 
         05:23 

, и я хочу, чтобы получить 05:23 в конце текста. Я пробовал эти два шаблона, но они оба потерпели неудачу.

(\d{2}:\d{2})$ 
data-target=\"added\">(.*?)$ 

Что было бы правильным шаблоном для этого?

+0

Правый рисунок будет первым чтение [это] (http://stackoverflow.com/a/1732454/932418), а затем с помощью [это] (https://htmlagilitypack.codeplex.com/) – Eser

+0

Я знаю, но я на WP8.1, и большинство парсеров html несовместимы. + это файл, который я должен обрабатывать, поэтому источник фактически не изменяется. – user2530266

+0

'большинство синтаксических анализаторов html не совместимы'. Что относительно HtmlAgilityPack? Ты это пробовал? Я бы счел это странным, если он не работает с WP8.1, пока он поддерживает WP7 :) – Eser

ответ

-1

Если вы можете использовать XML код ниже работает хорошо

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string input = 
       "<Root>" + 
        "<td class=\"artist\">" + 
         "<div class=\"wrapper ellipsis\">" + 
         "<a class=\"evt-click\" href=\"/artist/7\" data-target=\"artist\" itemprop=\"byArtist\">Jamiroquai</a>" + 
         "</div>" + 
        "</td>" + 
        "<td class=\"album\">" + 
         "<div class=\"wrapper ellipsis\">" + 
         "<a class=\"evt-click\" href=\"/album/98952\" itemprop=\"inAlbum\" data-target=\"album\" >A Funk Odyssey</a>" + 
         "</div>" + 
        "</td>" + 
        "<td class=\"length\">" + 
         "<div class=\"wrapper\" data-target=\"length\"></div>" + 
        "</td>" + 
        "<td class=\"popularity\" title=\"By popularity:7.85/10\">" + 
         "<span class=\"note\" data-target=\"note\"></span>" + 
        "</td>" + 
        "<td class=\"added\">" + 
         "<div class=\"wrapper ellipsis timestamp\" data-target=\"added\">" + 
         "05:23" + 
         "</div>" + 
        "</td>" + 
       "</Root>"; 

      XElement doc = XElement.Parse(input); 
      var results = doc.Descendants("div").Where(x => x.Attribute("class").Value == "wrapper ellipsis timestamp").FirstOrDefault().Value; 
     } 
    } 
} 
​ 
+0

Вы не можете использовать синтаксический анализатор xml для разбора html. Например, '
', '


', '' являются допустимыми тегами html, которые не требуют закрывающего тега. –

+0

Я сказал «ЕСЛИ». – jdweng

+0

То же, что и: например, отправить случайный текст json и сказать * «Если вы можете использовать JSON, код ниже работает красиво» * И понятно из вопроса, что OP не может использовать синтаксические анализаторы xml, иначе вы не исправили бы sampe html, чтобы иметь возможность анализировать. –

Смежные вопросы