为了账号安全,请及时绑定邮箱和手机立即绑定

怎么做正则表达式模式与字符串中的任何地方都不匹配?

怎么做正则表达式模式与字符串中的任何地方都不匹配?

怎么做正则表达式模式与字符串中的任何地方都不匹配我正在尝试<input>使用此模式匹配类型“隐藏”字段:/<input type="hidden" name="([^"]*?)" value="([^"]*?)" />/这是示例表单数据:<input type="hidden" name="SaveRequired" value="False" /><input type="hidden" name="__VIEWSTATE1" value="1H4sIAAtzrkX7QfL5VEGj6nGi+nP" /> <input type="hidden" name="__VIEWSTATE2" value="0351118MK" /><input type="hidden" name="__VIEWSTATE3" value="ZVVV91yjY" /> <input type="hidden" name="__VIEWSTATE0" value="3" /><input type="hidden" name="__VIEWSTATE" value="" /> <input type="hidden" name="__VIEWSTATE" value="" />但我不知道的type,name和value属性将始终出现在相同的顺序。如果type属性是最后一个,则匹配将失败,因为在我的模式中,它在开始时。问题:如何更改模式以使其匹配,无论<input>标签中属性的位置如何?PS:顺便说一下,我正在使用基于Adobe Air的RegEx桌面工具来测试正则表达式。?
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

  1. 你可以写一本像tchrist这样的小说

  2. 您可以使用DOM库,加载HTML并使用xpath并使用//input[@type="hidden"]。或者,如果您不想使用xpath,只需获取所有输入并过滤隐藏哪些输入getAttribute

我更喜欢#2。

<?php

$d = new DOMDocument();$d->loadHTML(
    '
    <p>fsdjl</p>
    <form><div>fdsjl</div></form>
    <input type="hidden" name="blah" value="hide yo kids">
    <input type="text" name="blah" value="hide yo kids">
    <input type="hidden" name="blah" value="hide yo wife">
');$x = new DOMXpath($d);$inputs = $x->evaluate('//input[@type="hidden"]');foreach ( $inputs as $input ) {
    echo $input->getAttribute('value'), '<br>';}

结果:

hide yo kids<br>hide yo wife<br>


查看完整回答
反对 回复 2019-05-23
  • 3 回答
  • 0 关注
  • 730 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信