我想实现一种方法来获取一个开放跨度标签和它的关闭标签之间的所有内容。问题是有时我可以嵌套跨度,我想确保我的正则表达式不会停止它看到的第一个结束跨度。
要查看我的问题,请查看:Regex101:嵌套跨度
我想确保我得到了打开和关闭标签之间的所有内容。不管</span>
我能在里面找到多少。
我找到了一个由 Steven Levithan 制作的库,可以满足我的需求。我遇到的问题是这个例子是基本的,我不确定我能否实现我想要的。
我正在使用XregExp.matchRecursive方法。在示例中,他们给出了一个开始标签和一个结束标签。我的开始标签有点复杂,看起来像 : <span style=\\?"color:([a-zA-Z\s]*?)\\?">
。问题是当我用这个分隔符执行这个方法时,我得到这个错误:字符串包含不平衡的分隔符。测试的字符串是:
<p style=\"text-align:justify\">
<span style=\"font-size:12pt\">
<span style=\"color:Green\">
<span style=\"font-family:Verdana\">There is some content for a mm advertisment.There is some co</span>
<span style=\"font-family:Times New Roman\">ntent for a mm advertisment.</span>
</span>
</span>
</p>
我认为我的问题是因为我使用正则表达式作为起始分隔符。正如文档中解释的那样,我们应该在正则表达式中添加一个转义反斜杠级别。这就是为什么我尝试使用这个正则表达式作为开始分隔符 : <span style=\\\\?"color:([a-zA-Z\\s]*?)\\\\?">
。还是行不通。我不知道如何告诉这个方法找到具有颜色样式属性的跨度和他的关闭标签之间的所有内容。
也许有人有解决方案?