我想匹配下面的模式并获得单词target。
INPUT TYPE =“HIDDEN”NAME =“TITLE”VALUE =“target”>
我试试这个但是徒劳无功。
preg_match('@(?:<INPUT TYPE="HIDDEN" NAME="TITLE" VALUE=")(.*)(?:">)@',$data,$matches);
我认为问题是因为双引号
我也试过“但仍然失败......
答案 0 :(得分:2)
它失败只是因为你的模式中有一个双重空格(标有_
):
INPUT TYPE="HIDDEN"__NAME="TITLE"
在那里删除一个空间并且它可以工作,无论如何这里将是我从头开始的尝试,不区分大小写并且使用"
或'
但是我不确定它是否是您想要的一部分name
必须为title
,在这种情况下,我必须对其进行一些编辑。
<?php
$data = '<input type="hidden" name="title" value="target">';
preg_match('/<input[^>]+value=[\'"](\w*)[\'"][^>]*>/i',$data,$matches);
echo $matches[1]; //=> target
?>
答案 1 :(得分:0)
试试这个:
preg_match('@<INPUT TYPE="HIDDEN" NAME="TITLE" VALUE="([^"]*)">@', $data, $matches);
答案 2 :(得分:0)
你很接近......你需要匹配使用()。看起来你有一个额外的)
preg_match('@<INPUT TYPE="HIDDEN" NAME="TITLE" VALUE="([^"]*)">@',$data,$matches);
[^“] - ”
以外的任何字符() - 匹配部分