1

我正在尝试从可能以两种不同方式出现的 HTML 页面中提取 Viewstate 值:

第一的:

胡说八道

这里的一些标签和东西可以忽略

更多垃圾和现在重要的东西.. id="__VIEWSTATE" value=" ThisIsWhatIWantToExtract " />

垃圾

第二:

胡说八道

这里的一些标签和东西可以忽略

一些更多的垃圾和现在重要的东西.. |__VIEWSTATE| ThisIsWhatIWantToExtract |垃圾

垃圾

在我意识到它可能有两种方式之前,我正在使用 .split('__VIEWSTATE') 方法。这就是我尝试过的:

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

它似乎适用于第一种情况,但不适用于第二种情况。

什么是最有效和正确的方法?

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 回答