Wycinanie fragmentu tekstu z stringa

0

Siemka, jak można wyciać fragment tekstu, chce aby program wyszukał np:
"data-path="" i wyswietlił co to jest miedzy "". Ale długość znakowa może być różna. I program w c#

 
<li><a href="http://www.onet.pl/" data-alternate-url="http://www.onet.pl/#sg"><div class="homeIcon"></div>Onet</a></li>
<li data-path="wiadomosci">
<a href="http://wiadomosci.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-wiadomosci">Wiadomości</a>
</li>
<li data-path="sport">
<a href="http://eurosport.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-sport">Sport</a>
</li>
<li data-path="biznes">
<a href="http://biznes.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-biznes">Biznes</a>
</li>
<li data-path="gwiazdy">
<a href="http://plejada.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-gwiazdy">Gwiazdy</a>
</li>
<li data-path="kultura">
<a href="http://kultura.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-kultura">Kultura</a>
</li>
<li data-path="horyzonty">
<a href="http://podroze.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-horyzonty">Horyzonty</a>
</li>
<li data-path="turbo">
<a href="http://moto.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-turbo">Turbo</a>
</li>
<li data-path="styl">
<a href="http://kobieta.onet.pl/" data-alternate-url="http://www.onet.pl/#lista-styl">Styl</a>
0
            List<String> list = new List<String>();
            string pattern = "data-path=\"";
            int index = 0;
            while (true)
            {
                int a = str.IndexOf(pattern,index);
                if (a == -1)
                    break;
                index = a + pattern.Length;
                int b = str.IndexOf("\"",index);
                
                list.Add(str.Substring(index,b-index));

            }

gdzie

str

to twój string.
Powinno działać.
Możesz też użyć wyrażeń regularnych.

3

^ Co to jest, C?

Wykorzystanie HtmlAgilityPack (masz w NuGet).

var document = new HtmlDocument();
document.LoadHtml(text);

IEnumerable<string> paths = document.DocumentNode.SelectNodes("//li/@data-path").Select(node => node.Attributes["data-path"].Value);
0
 Regex regexPassword = new Regex(@"znak(.+?)");

jak wstawić w regex taki znak " bo tak się nie da " tak tez nie /"

0
using System.Text.RegularExpressions;
using System;

class Program
{
    static void Main()
    {
        string input = "<li data-path=\"turbo\">...<li data-path=\"turbo\">";
        
        Regex regex = new Regex("data-path=\"([^\"]*)\"");
        foreach (Match match in regex.Matches(input))
        {
          Console.WriteLine(match.Groups[1].Value);
        }
    }
}
0

Albo możesz skorzystać z klasy XmlReader...

0 użytkowników online, w tym zalogowanych: 0, gości: 0