Java 正则表达式 View 状态

标签 java html regex lookbehind

我正在将一些功能从 C++ 应用程序移植到 java。这涉及读取包含正则表达式的不可修改的数据文件。

许多数据文件包含类似于以下内容的正则表达式:

(?<=id="VIEWSTATE".*?value=").*?(?=")

这些正则表达式产生以下错误:

"Look-behind group does not have an obvious maximum length near index XX"

在 C++ 中,所使用的引擎支持这些表达式。是否有另一种形式的正则表达式可以产生与使用像我的示例这样的表达式作为输入生成的结果相同的结果?

最佳答案

据我所知,在所有当前的正则表达式风格中,只有 .NET 和 JGSoft 支持后向表达式中的无限量词。如果不能更改正则表达式,就不能在 Java 中做您想做的事情。

但是,从一开始,向后看就是做这项工作的错误方法。使用捕获组会更容易,也更有效:

id="VIEWSTATE".*?value="([^"]*)"

...然后您从第 1 组中检索值。您确定不能更改正则表达式吗?

关于Java 正则表达式 View 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2699339/

相关文章:

php - MySQL 使用 table1.id REGEXP table2.id 为同一组选择不同的行

javascript - Jquery,打开关闭 slider 问题

php - Jquery .hover 在 foreach 循环内的 li 标签中显示所有箭头字形

java - 为什么在 Linux 中 PDF 中的文本会被截断?

java - 在封闭范围内定义的局部变量计数必须是最终错误

javascript - 安装 google chrome 扩展程序的 html 代码 (.crx)

javascript - 在javascript中引用正则表达式文字?为什么不?

包含超过给定长度的非 ASCII 的 Java RegEx 匹配字符串

java - Optaplanner/Drools 在solverFactory.buildSolver() 中抛出异常

java - 并发电子邮件处理(无垃圾邮件)