替换/匹配大文本句子

时间:2014-09-22 06:55:57

标签: c# regex

我有一个来自文件的大文本(通常是一个很好的html,但它可以是任何文本)。我需要用字符串值替换部分文本。

string FullText = GetTextFromFile(filename);
string OldString = "<div class=\"main\">some text here</div>";
string NewString = "<div class=\"main replaced\" id=\"someid\">some new text here</div>";

现在我做了一个字符串替换

FullText=FullText.replace(OldString,NewString);

这并不总是有效。我发现替换失败的原因是我需要查找/替换的字符串不完全匹配。 例如:在这种情况下,全文的部分可能是

...<div class='main'>     some 
          text   here</div>...

请注意单引号而不是双引号,以及单词之间的空格数。 因此,在这种情况下,无法进行基本的字符串替换。

我的问题: 1.在这种情况下是否可以进行正则表达式替换? 2.如果可能的话,我需要使用什么正则表达式才能获得正确的句子/部分代码?

简而言之,我需要正则表达式替换才能工作,无论空格数/新行数,还是单引号/双引号。

1 个答案:

答案 0 :(得分:1)

尝试

Regex.Replace(Your_html, @"<div\s+class\s*=\s*['|""]main['|""]\s*>((\r\n)*\s*\w+\s*(\r\n)*)+</div>","new text")