2

次のテスト文字列に一致する方法を見つけようとしています。

token = '1866FB352F4DF76BCB92C3482DB7D7B4F562';

返してほしいデータは...

1866FB352F4DF76BCB92C3482DB7D7B4F562

私は次のことを試しました、私が持っている終わりはこれです、しかしそれは最後に一重引用符を含みます:

(?!token = ')(\w+)';

さて、もう1つは密接に機能しますが、最後の一重引用符が含まれています。

'([^']+)'

誰かがこれを刺したいですか?

更新:解析する必要があるものを確認した後、HTMLのフォーム領域に同じ値が見つかりました。これは、取得しやすいように見えます。

name="token" value="482CD1FE037F68D5A36F4C961A6D57D9"

繰り返しますが、value="*"内のコンテンツが必要です。

ただし、正規表現はhtmlソース全体を解析する必要があるため、name = "toke" value =を検索する必要があると思いますが、結果セットには含めません。

4

1 に答える 1

1

正規表現エンジンがルックアラウンドをサポートしている場合は、次を使用できます

(?<=')\w+(?=')   

これは、一重引用符で囲まれている場合、それらの引用符を実際の一致の一部にすることなく、英数字の単語と一致します。16進数のみを照合する場合は、

(?i)(?<=')[0-9A-F]+(?=')   

編集:

JMeterを使用していることを追加し、JMeterは私には理解できない理由で後読みアサーションをサポートしていないため(Java自体が問題なくサポートしているため)、次のように不正行為を行うことができます。

\b[0-9A-F]+(?=')

16進数全体が文字の直前にあるかどうかのみをチェックします'。冒頭の引用の存在をチェックしませんが、これは問題ではない可能性があります。

于 2012-04-20T17:16:50.400 に答える