0

与正则表达式战斗......

我正在使用它来查找某些元素之间的 HTML 字符串:

 for (i = 0; i < 2; i += 1) {
   target = block[i];   // like BODY or HEAD
   regex = RegExp('<' + target + '>(.)+</' + target + '>');
   // in case string passed includes breaks/spaces
   data = data.replace(/(\r\n|\n|\r)/gm,"").replace(/\s+/g," ")
             .match(regex);
   entry = data[0].replace(/<!-- [\s\S]*? -->/g, '');
   console.log(entry);
 }

虽然这工作正常,但它返回如下内容:

<head>....everthing I want ....</head>

问题:
我需要如何修改正则表达式,以便我仍然可以指定我需要其内容的元素,但它只返回内容而不是内容和标记(如<head></head>)。

谢谢!

4

1 回答 1

1

使用第一个匹配组而不是整个匹配。

regex = RegExp('<' + target + '>(.+)</' + target + '>');

接着...

entry = data[1].replace(/<!-- [\s\S]*? -->/g, '');
于 2013-02-16T22:48:07.027 回答