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