变量文本替换

时间:2014-01-12 21:08:31

标签: c#

我有这个简单的文本变量

<ul class="disc">
                <li><a href="/free-openvpn-account/VPNBook.com-OpenVPN-Euro1.zip">Euro1 OpenVPN Certificate Bundle</a> </li>
                <li>Password: <strong>8ruFatha</strong></li>                
            </ul>

在本文中,我只需要提取Password: <strong>8ruFatha</strong>字符串替换不起作用,但这是一个可变文本。

有可能吗?

3 个答案:

答案 0 :(得分:3)

正则表达式用于解析HTML的用法是not very good idea。我建议您使用HtmlAgilityPack(可从NuGet获得):

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(yourHtmlString);
var li = doc.DocumentNode.SelectSingleNode("//ul[@class='disc']/li[2]");
string password = li.InnerHtml; // you can check if li is not null

如果xpath选择ul元素,类等于disc,则获取该列表的第二个列表项。

答案 1 :(得分:0)

Regex msdn

 foreach (Match match in Regex.Matches(answerString, @"<strong>(.*)</strong>"))
{
   //match.value - <strong>8ruFatha</strong>
}

answerString - 你的HTML

答案 2 :(得分:-1)

string extraction = text.SubString(text.IndexOf("Password:"), 34)

这会在字符串中找到密码:然后将字符串的34个字符转换为新的字符串提取。如果它不会被修复为34个字符,那么我建议使用另一个IndexOf()

设置子字符串的结尾