Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对嵌套跨距使用XRegExp.matchRecursive_Javascript_Html_Regex_Xregexp - Fatal编程技术网

Javascript 对嵌套跨距使用XRegExp.matchRecursive

Javascript 对嵌套跨距使用XRegExp.matchRecursive,javascript,html,regex,xregexp,Javascript,Html,Regex,Xregexp,我想实现一种方法,在一个打开的span标记和它的关闭标记之间获取所有内容。问题是,有时我可以使用嵌套的span,我希望确保我的正则表达式不会在它看到的第一个结束span处停止 要了解我的问题,请查看以下内容: 我想确保我得到了打开和关闭标签之间的所有内容。无论我能在里面找到多少 我找到了史蒂文·莱维坦制作的图书馆,可以满足我的需求。我的问题是,这个例子是基本的,我不确定我能达到我想要的 我在用这个方法。在本例中,它们给出了开始标记和结束标记。我的开始标记有点复杂,它看起来是这样的:。问题是,当我

我想实现一种方法,在一个打开的span标记和它的关闭标记之间获取所有内容。问题是,有时我可以使用嵌套的span,我希望确保我的正则表达式不会在它看到的第一个结束span处停止

要了解我的问题,请查看以下内容:

我想确保我得到了打开和关闭标签之间的所有内容。无论我能在里面找到多少

我找到了史蒂文·莱维坦制作的图书馆,可以满足我的需求。我的问题是,这个例子是基本的,我不确定我能达到我想要的

我在用这个方法。在本例中,它们给出了开始标记和结束标记。我的开始标记有点复杂,它看起来是这样的:
。问题是,当我使用此分隔符执行此方法时,会出现以下错误:字符串包含不平衡的分隔符。 测试字符串为:

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

有一些mm广告的内容。有一些co 为mm做广告。

我认为我的问题是因为我使用正则表达式作为开始分隔符。正如中所解释的,我们应该在正则表达式中添加一个转义反斜杠级别。这就是为什么我尝试使用这个正则表达式作为开始分隔符:
。仍然不起作用。我不知道如何告诉这个方法找到具有颜色样式属性的span和他的close标记之间的所有内容


也许有人有一个解决方案?

是否可以选择使用某种比正则表达式更强大的解析器?一般来说,后者并不真正适合于解析非正则语言,尽管与理论意义上的“纯”正则表达式相比,它们可能提供某些扩展。

因此,您遇到的块是错误“字符串包含不平衡的分隔符”

这是因为开始分隔符只匹配测试输入中的一个开始跨度标记(指定颜色的标记),而结束分隔符匹配所有四个结束跨度标记


我认为您必须首先匹配所有span标记(与您找到的库),然后重新处理以找到您关心的span标记。

为什么要使用正则表达式?如果它是有效的HTML,请使用DOM函数。当然,使用jquery,我可以用HTML()方法在一行代码中完成这项工作。但我需要在Wakanda环境中完成这个服务器端操作;当然,这在服务器环境中也是可用的。当然,在浏览器中使用简单的javascript是很容易做到的。我不能问这个问题,如果它是客户端的。现在在服务器端,我们没有像在客户端那样工作的DOM解析器,所以我们必须自己解析字符串它比仅仅使用正则表达式更强大。除此之外,OP的进一步评论已经排除了为他/她的用例使用更合适的工具的可能性。(唉。)