【问题标题】:Html Parser - C# Regex html tags (div, img, a, h5 etc) plus attributesHtml Parser - C# Regex html 标签(div、img、a、h5 等)加上属性
【发布时间】:2023-03-10 01:19:01
【问题描述】:

Html Parser - C# Regex html tags content >me im the content

您可能会问为什么要这样做。我继承了原型代码来执行短语替换,例如 Home -> Casa。 (西班牙语)。 你可以想象我有很多短语(350 个和上升),例如“添加新联系人”,它们的长度和字数各不相同。

第一个要求:需要一个正则表达式来提取标签内容。 输出必须是: 这是正则表达式要匹配的内容 这将允许我进一步操作字符串以执行短语替换。

第二个要求: 这里是正则表达式要匹配的内容/> 需要一个正则表达式来提取属性标签内容,例如: 输出必须是:

请不要回复使用 HTML 敏捷包。我有不允许我查看的定制要求 a:格式良好的文件。 湾。客户端 XSL 转换 C。决定内容的 XML 数据孤岛。

string file = @"<html>
        <body>
            <input class='moth'>Add New Organisation  </>
<input class='moth'>Org&#160;role
 </>
         </body>
           </html>";

string searchText = "Add New Organisation";

<([\d\w]*)\b[^>]*>([\d\w\s]*?{0}[\d\w\s]*)

所以任何人都可以提供帮助。到目前为止,我一直在使用这个正则表达式..

 var myContentMatches = new List<string>
            (Regex.Matches(file, regExpressionContent.ToString(),
            RegexOptions.IgnoreCase
                | RegexOptions.IgnorePatternWhitespace
                | RegexOptions.Multiline)
            .Cast<Match>().Select(pp => pp.ToString()));  

我尽量不在这里过多地提出问题。需要任何进一步的信息,请询问。一段时间以来,我一直在努力反对速度和正确匹配。

【问题讨论】:

  • 我不明白您所说的三个要求如何阻止您使用 HTML Agility Pack。
  • HAP 处理格式错误的文档,不进行客户端 XSL 转换,将按原样解析 XML 数据岛。
  • 使用 HAP 很容易做到这一点。没有正当理由排除正确答案是愚蠢的。用正则表达式解析 HTML 非常愚蠢。

标签: c# html regex parsing phrase


【解决方案1】:

HTML 不是正则语言,不能用正则表达式解析。我不认为有一个不利用现有库来解析 HTML 的实际解决方案。

这是 StackOverflow 上投票率最高的问题/答案组合之一,我建议您阅读:RegEx match open tags except XHTML self-contained tags

【讨论】:

  • 陷入了一个角落:(检查。我已经知道明天我需要测试的另一种方法。我目前正在使用用 c# 编写的 httpModule。我将尝试覆盖flush方法并确保我拥有完整的响应流,例如完整的html文档,然后对字符串执行替换。此时HAP可能是一个选项。但是有谁知道HAP如何处理部分来自 ASP:UpdatePanel 的 ajax 回发?
【解决方案2】:

我正在结束这个问题,使用 HAP 已经解决了我的一部分要求。谢谢大家的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2019-08-26
    • 2011-02-04
    • 1970-01-01
    • 2017-04-10
    • 2018-12-30
    • 2022-08-03
    相关资源
    最近更新 更多