我需要删除'<'之间的所有'\ n'和'>'在带有C#的html文件中。
我的代码如下:
Regex.Replace(text, "(<[^<>)]*)\\n+([^><]*>$)", "\1\2");
但它显然不起作用。有什么建议吗?
示例:
< style="
">
详细示例:
<td colspan="3" rowspan="2">
<table cellpadding="0" cellspacing="0" class="a10" cols="13" id="t_5" lang="en-AU">
<tr id="t_5_FNHR">
<td class="a26" style="HEIGHT:5.00mm">
<div class="r11">LAKOTA - PINK PANTHER RETURNS-V</div>
</td>
<td class="a27" style="
">
<div class="r11">5c</div>
</td>
另:
<td class="a34" style="
">
<div class="r11">7,390.62</div>
</td>
<td class="a35" style="
">
<div class="r11">617.81</div>
</td>
<td class="a36" style="
">
答案 0 :(得分:4)
一种简单但明显易碎的方法是删除下一个尖括号为>
的所有换行符:
Regex.Replace(text, @"[\r\n]+(?=[^<>]*>)", "");
<强>解释强>
[\r\n]+ # Match one or more CR or LF characters
(?= # if the following can be matched at the current position:
[^<>]* # any number of characters except angle brackets
> # and one closing angle bracket
) # (End of lookahead).
可能对你的情况足够好(如果不是,正则表达式可能不是正确的工具)。
答案 1 :(得分:0)
首先创建一个与html标记匹配的正则表达式,例如&lt; [^&gt;] +&gt;然后使用匹配评估程序。
Regex r = new Regex(pattern);
var result = r.Replace(input, new MatchEvaluator(ReplaceNewline));
public string ReplaceNewline(Match m)
{
return m.Value.Replace("\n", "");
}
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.matchevaluator.aspx