旋转器的正则表达式

时间:2015-12-17 01:42:57

标签: javascript regex

我正在尝试为我的网站构建一个广告旋转器,我需要一些正常表达方式的帮助。

我基本上需要解析html以找到以下文本的所有出现。

<script type="text/javascript"><!--
    hsoub_adplace = XXXXXXXXXXXXXXX;
    hsoub_adplace_size = 'XXXxXXX';
//--></script>

这里的复杂性是大写字母Xs是从广告到广告的非静态整数,而小的只是界定宽度和高度。

我基本上需要能够使用静态元素或任何其他被认为可行的方法在整个html doc中找到所有出现的上述文本。

我尝试使用以下多种变体无效:

('#<script(.*?)>(.*?)</script>#is'.....)

我们将非常感谢所有的想法/建议。谢谢你的时间。

2 个答案:

答案 0 :(得分:1)

这将匹配整个块

(<script[^>]+><!--\s*hsoub_adplace\s*=\s*\d+\s*;\s*hsoub_adplace_size\s*=\s* '\d+x\d+';\s*//--></script>)

在这里,我们根据已知标准尽可能地确定资格。如果我们有其他启发式方法可以遵循,我们可以使表达更紧凑。一个有用的启发式示例可能是“包含hsoub的任何脚本块都将包含我们想要捕获的所有内容”。或者“每页只有一个hsoub块”

答案 1 :(得分:0)

不清楚你想要什么或为什么,所以这可能不正确。如果您需要捕获hsoub_adplace的值,那么

hsoub_adplace = (\w*);

捕获它并提供一种通过替换来更改它的方法。同样的大小。

Demo

如果你真的想捕捉整个街区,你所提供的是真的,那么

<script.*--\n\s+hsoub_adplace[\w\s\=;']+\n.*script\>

Demo