一个php正则表达式,用于删除html中的空白


A php regex to remove white spaces in html

嗨,我有一个类似html的

<html>
   <head>
     <title>
          Some title
   </title>
</head>
<body>
    <div id="one">         some sample info </div>
</body>
</html>

如何使用preg_replace使用一些正则表达式删除这个html中的空白,除了内容和标记中的空白?所以要得到这样的

<html><head><title>Some title</title></head><body><div id="one">some sample info</div></body></html>

有人能帮我吗??:)

您可以用空字符串替换(?<=>)'s+(?=<)|(?<=>)'s+(?!=<)|(?!<=>)'s+(?=<)

编辑:有一种更简单的形式:替换(?<=>)'s+|'s+(?=<)

简单地说,如果左侧有>或右侧有<,则此正则表达式将替换一组一个或多个空白。

实际上,它有两个由(符号:|)连接的部分,所以其中任何一个都可能匹配:

  1. (?<=>)'s+-如果前面有<(在regex:(?<=>)中),则它将匹配一个或多个空白(在regex中为's+)。

  2. 's+(?!=<)-如果后面跟一个<(在regex:(?!=<)中),它将匹配一个或多个空白

了解有关regex的更多信息。