1

2 つの異なる方法で取得できる HTML ページから Viewstate 値を抽出しようとしています。

初め:

何とか何とか

無視できるいくつかのタグやもの

いくつかのゴミと今重要なもの.. id="__VIEWSTATE" value=" ThisIsWhatIWantToExtract " />

ごみ

2番:

何とか何とか

無視できるいくつかのタグやもの

いくつかのゴミと今重要なもの.. |__VIEWSTATE| ThisIsWhatIWantToExtract |ガベージ

ごみ

私は .split('__VIEWSTATE') メソッドを使用していましたが、それが 2 つの方法で発生する可能性があることに気付きました。これは私が試したことです:

(.*\"__VIEWSTATE\" value\=\"(.*)\" \/\>.*)|(.*\|__VIEWSTATE\\|(.*)\|.*)

最初のケースでは機能しているようですが、2 番目のケースでは機能しません。

これを行うための最も効率的で正しい方法は何ですか?

4

2 に答える 2

2

バックスラッシュを台無しにしました。一部が欠落しています (RegExp および Java 文字列リテラルで必要) 一部は不要です (regexp の非空間文字の前に置かれます):

".*(\"__VIEWSTATE\" +value=\"([^\"]*)\" */>|\\|__VIEWSTATE\\|([^|]*)\\|).*"

その後、キャプチャ番号 2 または 3 が結果です。

于 2013-09-25T14:19:53.513 に答える
0

以下を介してターゲットコンテンツを抽出しreplaceAll()ます。

String stuff = str.replaceAll(".*__VIEWSTATE(\"\\s*value=\"|\\|)([^\"|]+).*", "$2");
于 2013-09-25T14:26:35.440 に答える