sly*_*ete 0 javascript regex xhtml parsing html-parsing
我在XHTML文档中有以下内容:
<script type="text/javascript" id="JSBALLOONS">
function() {
this.init = function() {
this.wAPI = new widgetAPI('__BALLOONS__');
this.getRssFeed();
};
}
</script>
Run Code Online (Sandbox Code Playgroud)
我正在尝试选择两个脚本标记之间的所有内容.该id会一直JSBALLOONS是否有帮助.我知道如何选择包括脚本标签,但我不知道如何选择除脚本标签之外的内容.正则表达式的结果应该是:
function() {
this.init = function() {
this.wAPI = new widgetAPI('__BALLOONS__');
this.getRssFeed();
};
}
Run Code Online (Sandbox Code Playgroud)
(专门针对Javascript解决方案更新的帖子.)
在Javascript中,您的代码可能如下所示:
if (data.match(/<script[^>]+id="JSBALLOONS">([\S\s]*?)<\/script>/)) {
inner_script = RegExp.$1;
}
Run Code Online (Sandbox Code Playgroud)
括号内的那一部分([\S\s]*?)由正则表达式引擎保存,并在找到匹配后可供您访问.在Javascript中,您可以使用RegExp.$1引用脚本标记内的匹配部分.如果你有一个以上的这样一个群体,()你可以用它来引用它们RegExp.$2,依此类推RegExp.$9.
默认情况下,Javascript与新行字符不匹配,因此我们必须使用([\S\s]*?)而不是(.*?),这可能更有意义.只是要完整,在其他语言中,如果使用s修饰符(/.../s),则不需要这样做.
(我必须补充一点,当从这样的HTML页面中抓取内容时,正则表达式通常非常脆弱.使用jQuery框架提取内容可能会更好.)
| 归档时间: |
|
| 查看次数: |
575 次 |
| 最近记录: |