我有这样的文字:
...<span>my name is bob and I live in </p><p>America</span>...
我将替换为
...<span>my name is bob and I live in </span></p><p><span>America</span>...
我知道replace()函数,但是我不太了解正则表达式,这怎么可能呢?
请记住,可以在
</p>
之前正确关闭其他span标签,例如:...<span>my name is bob</span> and <span>I live in </p><p>America</span>...
最佳答案
通常,您无法使用正则表达式解析HTML,因为它不是常规语言。
如果要在特定位置生成字符串,并且知道它仅仅是值本身,那么这可能是可能的。但是,在那种情况下,不太可能是干净的,因为您不想将标签嵌入到应该只是某些CDATA的内容中。如果您开始解析包含标签的文档,那么通常就不可能编写适当的正则表达式来捕获您的情况。如果您的文档使用的语法非常有限,也许可以,但是我会对此保持警惕,因为我怀疑有人会记得在将来进行重构时会强制执行这些限制。
更好的解决方案是使用DOM之类的方法来迭代实际生成的HTML本身并修改节点树。另外,在实际不输出纯XHTML的情况下,也可以使用XSLT进行此翻译。