我的json文件中有这样的正则表达式
"body": {
"content": "<div class=(?:\"|')content(?:\"|') [^>](.*?)</div>\\;content:\\1",
}
截至目前,它唯一匹配的第一个内容div。
有人能告诉我如何让它变得贪婪吗?
答案 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处理。