快速正则表达式问题 - 匹配之间

时间:2010-01-05 13:45:55

标签: regex

我希望有人可以帮我解决这个正则表达式

content.match(/<div class="content">.+#-#/ig);

我需要匹配<div class="content"> [匹配中间的所有内容]之间的所有内容,直到编码中的# - #

我正在使用javascript

由于

2 个答案:

答案 0 :(得分:3)

试试这个正则表达式:

/<div class="content">[\s\S]+?#-#/ig

[\s\S]将匹配任何字符,包括换行符,非贪婪量词+?会将匹配扩展到最小值。

答案 1 :(得分:1)

嗯,严格地说:

content.match(/<div class="content">(.+?)##/ig);

结果是数组中的每个偶数元素。但你真的不应该使用正则表达式。如果你想要'content'div的内容,你应该使用DOM方法。沿着:

function getContents () {
  var divs = document.getElementsByTagName('DIV');
  var result = [];
  for (var i=0,l=divs.length;i<l;i++) {
    if (divs[i].className == 'content') {
        var content = divs[i].innerHTML;
        result.push(content.match(/(.*?)##/)[1]);
    }
  }
  return result;
}