c#正则表达式问题

标签 c# regex

我想像这样在行中搜索一个值

<p align="center"><input type="hidden" name="e79e7ec" value="15302f565b">

我需要 name=""value 和 value=""value :P 创建这段代码,但是这段代码不起作用

Regex rloginRand = new Regex(@"<p align=center><input type=hidden name=\w*");
            Match mloginRand = rloginRand.Match(source);
            string loginrand = "";
            if (mloginRand.Success)
            {
                 loginrand = mloginRand.ToString().Replace("<p align=center><input type=hidden name=", "");
            }
            string loginrnd = "";
            Regex rloginRnd = new Regex(@"name="+ loginrand+"value=\w*");
            Match mloginRnd = rloginRnd.Match(source);

            if (mloginRand.Success)
            {
                loginrnd = mloginRnd.ToString().Replace("name="+loginrand+" value=", "");
            }

错误是

Form1.cs(71,69):错误 CS1009:无法识别的转义序列

在这一行

正则表达式 rloginRnd = new Regex(@"name="+ loginrand+"***value=\w****");

最佳答案

正则表达式并不总是 HTML 的最佳工具;我会使用 HTML Agility Pack (因为它不是 xhtml)和 xpath - 那么它应该非常简单:

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(html);
    HtmlNode node = doc.DocumentNode.SelectSingleNode("input");
    // read (if you want)
    string name = node.GetAttributeValue("name", ""),
        value = node.GetAttributeValue("value", "");
    // wipe
    node.SetAttributeValue("name", loginrand);
    node.SetAttributeValue("value", "");
    // get html
    html = doc.DocumentNode.OuterHtml;

关于c#正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/590334/

相关文章:

c# - 如何使用 C# 将 Redis 哈希存储在数据表中

c# - 在大型对象数组中查找对象参数会花费太长时间吗? (C#)

javascript - 正则表达式匹配时间范围

python - 正则表达式中的重复模式

PHP删除所有表tr td标签

c# - 物理、相对、绝对和其他路径

c# - MVVM 架构 WPF

c# - EF Core中的0-1自引用关系

regex - 正则表达式 : how to exclude multiple character groups?

ruby - 多字节字符是否会干扰正则表达式中的结束行字符?