将 \n 转换为
但如果它不遵循

或[h2]

发布于 2024-12-22 07:32:14 字数 728 浏览 0 评论 0原文

我想用
替换 \n在一个字符串中。但没那么简单。不应该有 如果要替换,则在 \n 之前或 [/h2]。

例如,输入一个
在这个例子中的“某事”和“另一件事”之间:

Something
Another thing

但在这个例子中什么都不做:

<h2>Something</h2>
<p>Another thing</p>

我想出了 (?)\n 致力于 这个 .NET 正则表达式测试器。在第一个示例中找到了要替换的内容,但在第二个示例中却没有找到预期的内容。但是,我无法让这个漂亮的正则表达式在我的 C# 代码中像这样工作。以下代码将替换所有 \n,无论它是否位于 后面。

Cevrilen = Regex.Replace(Cevrilen, @"(?<!\]|\>)\n", "<br />");

如果中断后面没有 标记,我该如何替换它们?

I want to replace \n with <br /> in a string. But not that simple. There shouldn't be a </h2> or [/h2] before \n if it is to be raplaced.

For example put a <br /> between "Something" and "Another thing" in this example:

Something
Another thing

But do nothing in this example:

<h2>Something</h2>
<p>Another thing</p>

I come up with (?<!\]|\>)\n working on this .NET Regex Tester. Something to be replaced is found in the first example but not in the second as expected. However, I couldn't make this nice regex work like this in my C# code. The following code replaces all \ns regardless whether it follows a </h2> or not.

Cevrilen = Regex.Replace(Cevrilen, @"(?<!\]|\>)\n", "<br />");

How can I replace breaks just if they are not followed by a </h2> tag?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

送你一个梦 2024-12-29 07:32:14
(?<!(?:<\/h2>|\[\/h2\]))\n

应该可以做到这一点(使用负向后查找来取消 \n 之前的 [/h2] 资格)

(?<!(?:<\/h2>|\[\/h2\]))\n

That should do it (using a negative look-behind to disqualify </h2> or [/h2] preceding a \n)

浅唱々樱花落 2024-12-29 07:32:14

如果您的 html 符合 xhtml,则将其加载为 System.Xml.Linq.XDocument,并且不要尝试使用 Regex 对其进行分析。正如一些人所说,“连查克·诺里斯都做不到”。

If your html complies with xhtml, then load it as System.Xml.Linq.XDocument and do not try to analyze it with Regex. As some said, "Not even Chuck Norris can do that".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文