Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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/4/regex/17.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/4/unix/3.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 “如何制作正则表达式部件”;“向后懒惰”;?_Javascript_Regex - Fatal编程技术网

Javascript “如何制作正则表达式部件”;“向后懒惰”;?

Javascript “如何制作正则表达式部件”;“向后懒惰”;?,javascript,regex,Javascript,Regex,为这个糟糕的标题道歉,我不知道如何用简短的形式来表达 我有一个包含html的字符串(文本、一些spans和一些s)。 我试图实现的是找到第一个span,以“聚焦”结尾的类。为了增加乐趣,spans在title属性中有行返回。然而,他们有一个固定的结构,我可以重新安排他们,如果需要的话。 这就是我到目前为止所做的: <span[\s\S]*?class=".*-focused"[\s\S]*?>[\s\S]*?<\/span> [\s\s]*? 但我从第一个音程的开始

为这个糟糕的标题道歉,我不知道如何用简短的形式来表达

我有一个包含html的字符串(文本、一些
span
s和一些

s)。 我试图实现的是找到第一个
span
,以“聚焦”结尾的类。为了增加乐趣,
span
s在
title
属性中有行返回。然而,他们有一个固定的结构,我可以重新安排他们,如果需要的话。 这就是我到目前为止所做的:

 <span[\s\S]*?class=".*-focused"[\s\S]*?>[\s\S]*?<\/span>
[\s\s]*?
但我从第一个音程的开始到匹配音程的结束都得到了匹配。 这里有一个regex101链接来说明(包含示例文本)

我试着用正面/负面的表情和捕捉/不捕捉的群体玩游戏,但在这一点上我比任何东西都更困惑

document.querySelector('span[class=$-focused]')

这应该可以找到第一个
span
类,该类以
为焦点

结尾。您应该避免在此处使用第一个
[\s\s]
。要获得所需的内容,您可能希望在相同的开始标记内继续。当匹配除
之外的所有内容时,会隐式执行此操作:

<span[^>]*?class=".*-focused"[^>]*?>[\s\S]*?<\/span>
]*?class=“.*-focused”[^>]*?>[\s\s]*?

必须始终保持不变。HTML不是一种上下文无关的语言,这是事实,因此尝试使用正则表达式解析整个HTML文件可能不起作用。然而,在我看来,说一旦涉及任何HTML就不能使用正则表达式简直是胡说八道。有些情况下,正则表达式是一个合适的工具,即使是在HTMLPossible duplicate@Amy和Epasarello中进行搜索,这就是为什么我指定我在文本中没有任意标记(也许我应该更清楚,当然)。如果这真的对您造成了伤害,请替换为“当涉及到仅使用嵌套元素解析整个文档或片段时,它是错误的工具。如果它能够高效可靠地完成任务,那么它就不会是错误的;)如果op想要解析html源代码,并且根本不在浏览器中运行,该怎么办?