gpt4 book ai didi

javascript - 对嵌套跨度使用 XRegExp.matchRecursive

转载 作者:太空狗 更新时间:2023-10-29 16:35:40 42 4
gpt4 key购买 nike

我想实现一种方法来获取一个开放跨度标签和它的关闭标签之间的所有内容。问题是有时我可以嵌套跨度,我想确保我的正则表达式不会停止它看到的第一个结束跨度。

要查看我的问题,请查看:Regex101 : nested span

我想确保我得到了开始标签和结束标签之间的所有内容。不管多少</span>我可以在里面找到。

我找到了一个由 Steven Levithan 制作的库,它可以实现我的需求。我遇到的问题是这个例子是基本的,我不确定我能否实现我想要的。

我正在使用 XregExp.matchRecursive方法。在示例中,他们给出了开始标记和结束标记。我的开始标签有点复杂,看起来像这样:<span style=\\?"color:([a-zA-Z\s]*?)\\?"> .问题是当我用这个定界符执行这个方法时,我得到这个错误:string contains unbalanced delimiters。测试的字符串是:

<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>

我认为我的问题是因为我将正则表达式用作开始定界符。正如在 doc 中解释的那样我们应该在正则表达式中添加一定程度的转义反斜杠。这就是为什么我尝试使用此正则表达式作为开始定界符的原因:<span style=\\\\?"color:([a-zA-Z\\s]*?)\\\\?"> .还是行不通。我看不出如何告诉此方法找到具有颜色样式属性的跨度与其关闭标记之间的所有内容。

也许有人有解决方案?

最佳答案

所以您遇到的问题是错误“string contains unbalanced delimiters”。

那是因为您的开始定界符仅匹配测试输入中的开始跨度标记之一(指定颜色的标记),但您的结束定界符匹配所有四个结束跨度标记。

我认为您必须通过首先匹配所有 span 标签(与您找到的库)然后重新处理以找到您关心的标签来解决这个问题。 p>

关于javascript - 对嵌套跨度使用 XRegExp.matchRecursive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266026/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com