我有一个html代码结构如下:
<html>
<body>
...
<p class="class1">
Text
Some more text
Even more text
</p>
...
<p class="class2">
Bla
Bla
Read more at
<a href="..." >Link</a>
</p>
</html>
在C#中,如何将<p>
标记之间的所有换行符替换为<br />
?所有其他标记都不应匹配。
这是我目前使用的正则表达式。但是它并没有像我期望的那样工作。/(?<=<p).*(\n).*(?=<\/p>)/gs
1条答案
按热度按时间cnwbcb6i1#
问题是在两个文本之间删除某个文本可以通过C#中的正则表达式解决,方法如下:
这里,
(?s)<p[\s>].*?</p>
将查找<p
(后面跟有空格或>
)和</p>
之间的所有子字符串,然后m => m.Value.Replace("\n", "<br />")
将在匹配值中用<br />
替换LF符号。如果可以混合使用换行符,则需要使用另一个
Regex.Replace
调用,并将m.Value.Replace("\n", "<br />")
替换为或者,如果您计划将连续的分行符号缩小为单一
<br />
: