繁体   English   中英

正则表达式匹配HTML字符串与换行符

[英]Regex Match for HTML string with newline

我想匹配:

    <h4>Manufacturer</h4>\n\n  Gigabyte\n\n\n

我的正则表达式ATM是:

    Match regex = Regex.Match(cleanedUpHtml, "Manufacturer(.*?)\n\n\n", RegexOptions.IgnoreCase);

但它不起作用。

(。*?)应该在两者之间匹配。

以下是我认为重要的两件事:

  1. 每当你在C#中声明一个正则表达式模式时,建议使用字符串文字,即@"PATTERN" 这简化了写正则表达式模式。

  2. 必须使用RegexOptions.Singleline将多行文本视为字符串,即点将与换行符匹配。

这是我的代码片段:

var str = "<h4>Manufacturer</h4>\n\n  Gigabyte\n\n\n";
var regex = Regex.Match(str, @"Manufacturer(.*?)\n\n\n", 
             RegexOptions.IgnoreCase | RegexOptions.Singleline);
if (regex.Success)
    MessageBox.Show("\"" + regex.Value + "\"");

regex.Value

"Manufacturer</h4>

  Gigabyte


"

最好的祝福。

我用另一个值替换了\\ n,然后正则表达式搜索了我替换的值。 它暂时正在工作,但它可能不是最好的方法。 任何建议表示赞赏

    cleanedUpHtml = cleanedUpHtml.Replace("\n", "p19o9");
    Match regex = Regex.Match(cleanedUpHtml, "Manufacturer(.*?)p19o9p19o9p19o9", RegexOptions.IgnoreCase);

通常我喜欢在使用正则表达式之前从html标签和换行符清除字符串。

(.*?)用\\ n characer停止捕获,你可能会使用更通用的组,比如([\\w|\\W]*?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM