我想用< br />替换\ n在一个字符串中。但不是那么简单。不应该有< / h2>或{/ h2]在\n
之前,如果要替换它。
例如,放一个< br />在这个例子中“Something”和“Another thing”之间:
Something
Another thing
但在这个例子中什么都不做:
<h2>Something</h2>
<p>Another thing</p>
我提出(?<!\]|\>)\n
正在研究this .NET Regex Tester。在第一个示例中找到要替换的内容,但在预期的第二个示例中找不到。但是,我无法在我的C#代码中使这个很好的正则表达式工作。以下代码替换所有\n
,无论它是否遵循</h2>
。
Cevrilen = Regex.Replace(Cevrilen, @"(?<!\]|\>)\n", "<br />");
如果没有</h2>
代码后跟中断,我该如何替换它?
答案 0 :(得分:1)
(?<!(?:<\/h2>|\[\/h2\]))\n
应该这样做(使用否定的后视来取消</h2>
之前的[/h2]
或\n
答案 1 :(得分:0)
如果您的html符合xhtml,请将其加载为System.Xml.Linq.XDocument,不要尝试使用Regex进行分析。正如一些人所说,“甚至查克诺里斯都不能这样做。”