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 に答える