我有一个"pre“,它是在内容之前和内容之后添加新行,即:
<pre>
My Content
</pre>
以上内容似乎相当于两行换行符之前和之后的一行。
我想解析我的HTML字符串的所有“预”标记,并删除这些前后换行符。
我将使用ASP.NET代码进行替换:
Regex.replace(myHtmlString,@"Regex Pattern",String.Empty);
其结果应该是:
<pre>My Content</pre>
那么"Regex模式“看起来会是什么样子呢?
提前谢谢。
编辑
到目前为止的答复:
strCleanXhtmlDoc = Regex.Replace(strCleanXhtmlDoc,@"<pre>[\r\n]*(.*?)[\r\n]*</pre>", "<pre>$1</pre>")
替换位是$1。
编辑:
艰难地让Regex与之协同工作:
<pre style="color: #a11f98;font-family: calibri;font-size: 14pt;font-style: normal;font-weight: normal;">
L1
L11
L111
</pre>
它确实需要匹配,才能产生:
<pre style="color: #a11f98;font-family: calibri;font-size: 14pt;font-style: normal;font-weight: normal;">L1
L11
L111</pre>
发布于 2014-04-10 05:34:21
您需要的正则表达式是这个(<pre[^>]*>)\s*([\w\W]*?)\s*(</pre>)
把它拆散
(<pre[^>]*>)
匹配start预标记,包括任何属性。[^>]*
这个位完成了大部分工作,意味着所有不是>
的字符\s*
然后我们匹配所有我们能匹配的空格([\w\W]*?)
--这个抓取内容\w\W
意味着任何字符,并且比.
更具包容性。?
是存在的,这样就不会占用下一位用来获取其非贪婪修饰符的空白。\s*
匹配结束标记之前内容末尾的空格。(</pre>)
匹配结束标记,这里没有什么特别的替代方法是$1$2$3
,以获取三个括号内的部分,并将它们放在一起,而不需要空格。
希望这是有意义的,并帮助你写你的下一个。
https://stackoverflow.com/questions/22977157
复制相似问题