用于删除端点空间模式的正则表达式

2024-09-28 23:14:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网站更新程序,它将每个p元素转换为一个textarea,用户在内容中键入内容,然后将每个textarea转换回p&我将生成的HTML存储在SQL数据库中。在

我的问题:在Internet Explorer中,当我把HTML取回来时,它稍微改变了HTML。例如:

// From this originally
<img id="headingpic"/><div id="myContent">  

// To this
<img id="headingpic"/>
<div id="myContent">

这一点很重要,因为现在展示的是img和下面的div之间的垂直间隙。在

有时IE插入一个“\n”,有时它是“\n”,有时它只是一个“\n”。我正试图想出一个正则表达式来删除这些端点线(间距),而不管它们的图案如何。我很难想出正则表达式,它们对我来说太神秘了。在

如果我解释一下我的算法,你能提出在正则表达式中实现这一点的“字符”吗?在

  • 对于每个“>;”字符:忽略任何空白字符或结束线字符如果下一个字符是“<;”,则继续
  • 对于“<;”后面的每个字符,如果不是==”>;“则删除它(或将其替换为“”)

我尝试用javascript或python来实现:

^{pr2}$

Tags: ltgt程序divid元素内容img
2条回答

您的正则表达式还需要几个字符,或者\s:

HTML_CONTENT.replace( "^[ \t\n\r\f\v]" )

或者

^{pr2}$

\v Matches a vertical tab \u000B.

\f Matches a form feed \u000C.


一开始我误解了这个问题,但下面是如何做到这一点的python:

import re
HTML_CONTENT = """\
<img id="headingpic"/> abcdef
qwerty..??,ksjhe173((:$
<div id="myContent">
"""

print re.sub(">[^<]*<", "><", HTML_CONTENT)

输出:

<img id="headingpic"/><div id="myContent">  

或者,如果您只想删除空白和换行符:

import re
HTML_CONTENT = """\
<img id="headingpic"/>

<div id="myContent">
"""

print re.sub(">[\s]*<", "><", HTML_CONTENT)

输出:

<img id="headingpic"/><div id="myContent">

我会用另一种方式:

先是一分为二。在

html_content_list = HTML_CONTENT.split("\n"); // Split by line;

然后用.trim()删除结尾处的所有空白(假设我们讨论的是字符串和每一行,首先测试null)

^{pr2}$

如果确实需要新行,请在末尾添加:

html_content_list.join("\n");

相关问题 更多 >