首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试确定Regex以从<PRE>标记的开始和结束中删除换行符,使用Regex.Replace从.NET中删除

尝试确定Regex以从<PRE>标记的开始和结束中删除换行符,使用Regex.Replace从.NET中删除
EN

Stack Overflow用户
提问于 2014-04-10 01:42:19
回答 1查看 245关注 0票数 0

我有一个"pre“,它是在内容之前和内容之后添加新行,即:

代码语言:javascript
运行
复制
<pre>

My Content
</pre>

以上内容似乎相当于两行换行符之前和之后的一行。

我想解析我的HTML字符串的所有“预”标记,并删除这些前后换行符。

我将使用ASP.NET代码进行替换:

代码语言:javascript
运行
复制
Regex.replace(myHtmlString,@"Regex Pattern",String.Empty);

其结果应该是:

代码语言:javascript
运行
复制
<pre>My Content</pre>

那么"Regex模式“看起来会是什么样子呢?

提前谢谢。

编辑

到目前为止的答复:

代码语言:javascript
运行
复制
strCleanXhtmlDoc = Regex.Replace(strCleanXhtmlDoc,@"<pre>[\r\n]*(.*?)[\r\n]*</pre>", "<pre>$1</pre>")

替换位是$1。

编辑:

艰难地让Regex与之协同工作:

代码语言:javascript
运行
复制
<pre style="color: #a11f98;font-family: calibri;font-size: 14pt;font-style: normal;font-weight: normal;">

L1

L11

L111
</pre>

它确实需要匹配,才能产生:

代码语言:javascript
运行
复制
<pre style="color: #a11f98;font-family: calibri;font-size: 14pt;font-style: normal;font-weight: normal;">L1

L11

L111</pre>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-10 05:34:21

您需要的正则表达式是这个(<pre[^>]*>)\s*([\w\W]*?)\s*(</pre>)

把它拆散

  • (<pre[^>]*>)匹配start预标记,包括任何属性。[^>]*这个位完成了大部分工作,意味着所有不是>的字符
  • \s*然后我们匹配所有我们能匹配的空格
  • ([\w\W]*?) --这个抓取内容\w\W意味着任何字符,并且比.更具包容性。?是存在的,这样就不会占用下一位用来获取其非贪婪修饰符的空白。
  • \s*匹配结束标记之前内容末尾的空格。
  • (</pre>)匹配结束标记,这里没有什么特别的

替代方法是$1$2$3,以获取三个括号内的部分,并将它们放在一起,而不需要空格。

希望这是有意义的,并帮助你写你的下一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22977157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档