[英]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);
但它不起作用。
(。*?)应该在两者之间匹配。
以下是我认为重要的两件事:
每当你在C#中声明一个正则表达式模式时,建议使用字符串文字,即@"PATTERN"
。 这简化了写正则表达式模式。
必须使用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.