Javascript正则表达式:如何在组中提取html标记值?

Javascript正则表达式:如何在组中提取html标记值?,javascript,regex,Javascript,Regex,上下文 我不熟悉regex(仍在练习),我正在尝试从标记中提取scriptsrc或link href值(用于教育目的) 给定以下html <!-- hello --> <script src="1.js"></script> <script src="2.js"></script> <link rel="stylesheet" href="3.css"/> <!-- world -->

上下文

我不熟悉regex(仍在练习),我正在尝试从标记中提取
scriptsrc
link href
值(用于教育目的)

给定以下html

<!-- hello -->
    <script src="1.js"></script>
    <script src="2.js"></script>
    <link rel="stylesheet" href="3.css"/>
<!-- world -->
当然,我必须用更好的东西来替换
[\s\s]*?
,但我尝试了很多组合,但没有一个有效

问候

更新

只应匹配
标记之间的脚本

以下内容不应匹配:

<!-- foo-->
    <script src="4.js"></script>
    <script src="5.js"></script>
    <link rel="stylesheet" href="6.css"/>
<!-- bar-->

如果您有如下元素

<name attribute=value attribute="value" attribute='value'>
适用于:

<a href=test.html class=xyz>
<a href="test.html" class="xyz">
<a href='test.html' class="xyz">
使用正则表达式

<!-- hello -->([\S\s]+)<!-- world -->
([\S\S]+)
要提取第一组中的有效字符串,请参阅

然后你可以使用正则表达式

<(?:script src.*|link.*href)="(\w+\.\w+)

因此,正如Wiktor Stribiżew所提到的,应该分步骤完成,因为在JS中不可能直接得到结果

首先,您必须获取
标记之间的元素,然后对结果进行全局搜索


谢谢Wiktor Stribiżew

您已经完成了步骤1。现在,继续执行步骤2,只需使用
/(?:src | href)=“([^”]*)“/g
并获取第1组值。如果不完成第一步,就不可能直接获取其他值?在JS中,不……哦,明白了!请把它作为答案贴出来,我会接受的。我建议你自己写,这样你会学得更好。请使用我的评论作为指导。您可以尝试以下操作,或者,根据您的需要:-)您可以在之间提取文本,然后在生成的字符串上应用此正则表达式如果它是正确的解决方案,请将其标记为答案:)还不能,至少两天:-(
'href' => 'test.html'
'class' => 'xyz'
<!-- hello -->([\S\s]+)<!-- world -->
<(?:script src.*|link.*href)="(\w+\.\w+)