-2

問題が発生しています。この正規表現[の作り方が分から^:]+(?=,|$)ないので見つからない(" ")

この式を引用符なしでアクセス トークンを渡すには、正規表現が必要です。

{"access_token":"UEaYoz4xgKQUyjHv9dg6nzaWN52jHbeGRymGVqdo6wd‌​WwXLjoxPydlNkXEOJYki‌​QpEXOHTo99Tn7i9Q-MHP‌​MFmnqmfLjel-0qVVpF1r‌​FxEiB_RtX3kMYm5-ihH7‌​OYB3aEzFvnQ_HsNevGlV‌​72AFKKJrhSP9V637SSYC‌​5MDzU4Wri0_uPW1VMuLu‌​q-IhtOPrSe0lqu86clal‌​ySuevFf5w_jcHPEm5xIx‌​R4pTzELfYluQiFS9JrAC‌​s5tF2d-WwkTZaYhjCf9M‌​Wx5JVqtMJC0x8shPvHZA‌​rH5Um1jpO12UHtRSU6P5‌​rP5VHuEk8AAQmDEv5EYh‌​59RI6jAWKtYRZMEBoJZO‌​UEbF9ZelPB4jYqpx4gsV‌​kP0GVJ57o_d3OiAllvOo‌​kY14u1GXZ3XN1fesOi89‌​srmatVf_J6ka50m9ilrW‌​tzMYWNq6vf2j-JgQA87R‌​80DTaRtCFfg"}

アクセス トークンのこの部分は、引用符なしで渡す必要があります。

UEaYoz4xgKQUyjHv9dg6nzaWN52jHbeGRymGVqdo6wd‌​WwXLjoxPydlNkXE‌​OJYki‌​QpEXOHTo99Tn7‌​i9Q-MHP‌​MFmnqmfLjel‌​-0qVVpF1r‌​FxEiB_RtX‌​3kMYm5-ihH7‌​OYB3aEz‌​FvnQ_HsNevGlV‌​72AFK‌​KJrhSP9V637SSYC‌​5MD‌​zU4Wri0_uPW1VMuLu‌​q‌​-IhtOPrSe0lqu86clal‌‌​​ySuevFf5w_jcHPEm5xI‌​x‌​R4pTzELfYluQiFS9J‌​rAC‌​s5tF2d-WwkTZaYh‌​jCf9M‌​Wx5JVqtMJC0x8‌​shPvHZA‌​rH5Um1jpO12‌​UHtRSU6P5‌​rP5VHuEk8‌​AAQmDEv5EYh‌​59RI6jA‌​WKtYRZMEBoJZO‌​UEbF9‌​ZelPB4jYqpx4gsV‌​kP0‌​GVJ57o_d3OiAllvOo‌​k‌​Y14u1GXZ3XN1fesOi89‌‌​​srmatVf_J6ka50m9ilr‌​W‌​tzMYWNq6vf2j-JgQA‌​87R‌​80DTaRtCFfg
4

2 に答える 2

1

あなたは物事を複雑にしています。JMeter はPerl5 スタイルの正規表現をサポートしています。つまり、引用符を検索パターンの一部にすることができるため、次のように左右の境界と見なされます。

"access_token":"(.+?)"

JSONに関しては、JMeter 3.0以降に利用可能なJSON Path PostProcessorを使用する方が理にかなっています。関連するJSONPathクエリは次のように単純になります。

$.access_token

より複雑な JSONPath クエリを作成する方法については、JMeterガイドでの JSON パス エクストラクタの高度な使用法を参照してください。

于 2016-10-24T04:21:33.950 に答える
0

あなたが意味するなら[^: "{}]+、あなたはそう言わなければなりません。これは、列挙された 4 つの文字のいずれも含まない任意の文字列に一致します。それは依然として左端の最長一致のみに一致するため、何らかの方法で一致を固定する必要があります。あなたの例に基づいて、私はあなたが本当に探していると思います

[^:"[{}]+(?="?([},]))

これは、オプションの二重引用符とそれに続く右中括弧またはコンマの直前にある、文字クラスに含まれない文字の最も長い左端の文字列に一致します。

他の人がコメントで既に述べたように、正規表現を使用して JSON を解析することは、一般的に非常に悪い考えです。これが失敗する多くのまれなケースがあります。まず、JSON が複数の行に分割される可能性があるため、中かっこまたはコンマがアクセス トークンと同じ行にないため、この正規表現による抽出は失敗します。

于 2016-10-23T16:36:41.707 に答える