我需要从一个隐藏的 HTML 字段中提取一个值,有点想通了,但我现在卡住了。
我的正则表达式看起来像:
<input type="hidden" name="form_id" value=".*"
但这会从 HTML 中提取整个字符串。
字符串看起来像:
<input type="hidden" name="form_id" value="123"/>
我需要从字符串中提取“值”,它总是在变化,但“名称”总是一样的。有没有办法在不做其他表达式的情况下提取它?我很感激任何帮助。
(?<=<[^<>]+?name="form_id"[^<>]+value=")(.*)(?=")
我只是把这个放在一起。基本上,您想否定请求中的任何结尾 >。所以你可能想做一些这样的事情:
<[^>]*hidden[^>]*value="(.*)"[^>]*>
然后阅读第一个捕获组(Delphi 指令)。尽管它确实假定了“隐藏”和“值”的位置顺序,但这使它尽可能地保持通用性。
为了在不考虑顺序的情况下找到值,您可以使用建议的稍微干净的前瞻:
^(?=.*name="form_id").*value="([^"]*)".*$
<[a-zA-Z"= _^>]*value="(\d*)"/>
我已经为您的示例进行了测试。
如果您只想提取输入标签,您可以编写:
<input[a-zA-Z"= _^>]*value="(\d*)"/>