正则表达式删除空的<span>标记

1 html php regex

我想要&nbsp;删除这样的空span标签(填充和空格):

<span> &nbsp; &nbsp; &nbsp; </span>

我试过这个正则表达式,但它需要调整:

(<span>(&nbsp;|\s)*</span>)

preg_replace('#<span>(&nbsp;|\s)*</span>#si','<\\1>',$encoded);

e-s*_*tis 5

将Kent Fredric的正则表达式翻译成PHP:

preg_match_all('#<span[^>]*(?:/>|>(?:\s|&nbsp;)*</span>)#im', $html, $result);
Run Code Online (Sandbox Code Playgroud)

这将匹配:

  • 自动关闭跨度
  • 跨越多线,无论如何
  • 跨越属性
  • 跨越坚不可摧的空间

也许你应该只包含跨度包含<br />...

像往常一样,当谈到调整regexp时,一些工具很方便:

http://regex.larsolavtorvik.com/