3

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

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

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

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

4

1 回答 1

2

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

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

当然,正如之前多次说过的,你不应该使用正则表达式来解析 html

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

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

或者像这样:

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

当然此时,它不再是纯 Json。真的,我建议在其他地方指定标志。例如,在您实际执行 html 处理的任何代码中。

于 2013-08-08T19:36:27.660 回答