使用正则表达式,如何将空格替换为无字符?

3
如何使用正则表达式将多个空白字符替换为无?例如:

<div class="someClass" id="someID"> 
...bunch of elements/content 
<input type="button" name="myInput" id="inputID" title="myInput Title" /> 
...bunch of elements/content 
</div> 

替换后:

<a class="myselector" rel="I need this value"></a><div class="someClass" id="someID">...bunch of elements/content<input type="button" name="myInput" id="inputID" title="myInput Title" />...bunch of elements/content</div> 

2
你不应该使用正则表达式来操作/解析HTML/XHTML。 - Darin Dimitrov
@Darin Dimitrov 我应该使用什么? - Gandalf StormCrow
2
@Gandalf,是一个HTML DOM /解析库,类似于Python中的BeautifulSoup或lxml,或者C#中的HTML Agility Pack。 - Max Shawabkeh
@Max Shawabkeh,这些工具是否可以在同一个文件中解析/压缩JavaScript/HTML/PHP? - Gandalf StormCrow
虽然不能原生地实现,但是使用它们编写缩小器可能比使用正则表达式更容易。此外,雅虎有一些命令行Java工具可用作中间件来缩小JS/CSS。不过,对于解析PHP,你就没那么幸运了。由于它不是严格的HTML,所以可能必须作为预处理步骤来完成。 - Max Shawabkeh
显示剩余2条评论
1个回答

2
表达式\s+匹配一个或多个空白字符,将其替换为空字符串以去除它们。例如,在Python中:
cleaned = re.sub(r'\s+', '', original)

如果您打算对HTML进行此操作,可能会损坏它。至少应该用一个空格代替:
cleaned = re.sub(r'\s+', ' ', original)

或者使用一个合适的HTML操作库。

1
请注意,\s 不仅代表空格字符,而且代表一般的空白字符。 - Gumbo
这样做不会破坏<pre>标签内的任何内容吗?(我知道...你只是回答问题...并且你已经用“使用适当的HTML操作库”声明了它) - Stephen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接