gpt4 book ai didi

javascript - 什么正则表达式可以匹配该数据?

转载 作者:行者123 更新时间:2023-11-28 11:11:07 28 4
gpt4 key购买 nike

我在 XHTML 文档中有以下内容:

<script type="text/javascript" id="JSBALLOONS">
function() {
this.init = function() {
this.wAPI = new widgetAPI('__BALLOONS__');
this.getRssFeed();
};
}
</script>

我正在尝试选择两个脚本标记之间的所有内容。如果有帮助的话,id 将始终为 JSBALLOONS。我知道如何选择包括脚本标签的内容,但我不知道如何选择不包括脚本标签的内容。正则表达式的结果应该是:

    function() {
this.init = function() {
this.wAPI = new widgetAPI('__BALLOONS__');
this.getRssFeed();
};
}

最佳答案

(专门针对 Javascript 解决方案更新了帖子。)

在 Javascript 中,您的代码可能如下所示:

if (data.match(/<script[^>]+id="JSBALLOONS">([\S\s]*?)<\/script>/)) {
inner_script = RegExp.$1;
}

括号 ([\S\s]*?) 之间的部分由正则表达式引擎保存,并且在找到匹配项后可供您访问。在Javascript中,您可以使用RegExp.$1来引用脚本标签内的匹配部分。如果您有多个这样的一组,并被 () 包围,则可以使用 RegExp.$2 引用它们,依此类推,直到 RegExp .$9.

默认情况下,Javascript 不会匹配换行符,因此我们必须使用 ([\S\s]*?) 而不是 (.*?),这可能更有意义。为了完整起见,在其他语言中,如果您使用 s 修饰符 (/.../s),则不需要这样做。

(我必须补充一点,当从这样的 HTML 页面中抓取内容时,正则表达式通常非常脆弱。您最好使用 jQuery 框架来提取内容。)

关于javascript - 什么正则表达式可以匹配该数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1034165/

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