我有一个来自文件的大文本(通常是一个很好的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.如果可能的话,我需要使用什么正则表达式才能获得正确的句子/部分代码?
简而言之,我需要正则表达式替换才能工作,无论空格数/新行数,还是单引号/双引号。
答案 0 :(得分:1)
尝试
Regex.Replace(Your_html, @"<div\s+class\s*=\s*['|""]main['|""]\s*>((\r\n)*\s*\w+\s*(\r\n)*)+</div>","new text")