如何使这个json正则表达式贪婪

时间:2013-08-08 19:34:37

标签: javascript regex json

我的json文件中有这样的正则表达式

"body": {
   "content": "<div class=(?:\"|')content(?:\"|') [^>](.*?)</div>\\;content:\\1",
}

截至目前,它唯一匹配的第一个内容div。

有人能告诉我如何让它变得贪婪吗?

1 个答案:

答案 0 :(得分:2)

.*?是一个非贪婪(或懒惰)的量词。为了让它变得贪婪,只需删除?

"body": {
   "content": "<div class=(?:\"|')content(?:\"|') [^>](.*)</div>\\;content:\\1",
}

当然,正如之前多次说过的那样,你shouldn't use regular expressions to parse html

要使用全局模式,只需在创建RegExp时指定它,如下所示:

"body": {
   "content": /<div class=(?:"|')content(?:"|') [^>](.*)</div>\\;content:\\1/g,
}

或者像这样:

"body": {
   "content": new RegExp("<div class=(?:\"|')content(?:\"|') [^>](.*)</div>\\;content:\\1", "g"),
}

当然,在这一点上,它不再是纯粹的Json。真的,我建议在其他地方指定标志。例如,无论你有什么代码实际进行html处理。