【问题标题】:C# Extract string from wall of textC#从文本墙中提取字符串
【发布时间】:2014-01-24 12:50:26
【问题描述】:

我有一堵来自源的 html 代码,我需要从源中提取“1929485”

<input type="hidden" name="key" value="1929485" />

我该怎么做?在网上找到了这个:

var match = Regex.Match(source, @"class="""" onclick=""NewWindow\('([^']*)',\s*'([^']*)',.*");

不确定这一切意味着什么?

谢谢。

【问题讨论】:

  • 您应该使用 HTML 解析器(为您的语言选择一个,有很多很棒的),而不是正则表达式,尽管它很诱人。这是为什么的经典答案:stackoverflow.com/questions/1732348/…。对于长 HTML 文件,您可能会遇到令人头疼的错误,因为正则表达式无法完全解析 HTML。
  • 反正已经注定了,教我你的方法!
  • 参见 HtmlAgilityPack。而且,这个:stackoverflow.com/questions/1732348/…
  • 你能指定你需要做什么吗?找到所有输入元素的值属性的值?还是别的什么?

标签: c# regex split


【解决方案1】:

首先,使用

pos = htmlstring.IndexOf("1929485")

查找子字符串所在的索引。确保没有任何其他实例,否则您获得的第一个实例可能不是您需要的。

然后,从头到尾展开,直到到达最佳位置,如下所示:

startpos = htmlstring.LastIndexOf("<input", pos);
endpos = htmlstring.IndexOf("/>", pos) + 2;

然后提取整个东西:

htmltag = htmlstring.Substring(startpos, endpos - startpos);

我可能会偏离一个角色,请尝试一下以满足您的需求。

【讨论】:

    猜你喜欢
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2022-09-23
    相关资源
    最近更新 更多