preg_match 中的匹配双引号

发布于 2024-12-06 06:14:09 字数 277 浏览 0 评论 0原文

我想匹配下面的模式并获得单词目标。

输入类型=“隐藏”名称=“标题”值=“目标”>

我尝试这样做但徒劳。

preg_match('@(?:<INPUT TYPE="HIDDEN"  NAME="TITLE" VALUE=")(.*)(?:">)@',$data,$matches);

我认为问题是因为双引号

我也尝试了 \" 但仍然失败......

I want to match the pattern below and obtain the word target.

INPUT TYPE="HIDDEN" NAME="TITLE" VALUE="target ">

I try this but in vain.

preg_match('@(?:<INPUT TYPE="HIDDEN"  NAME="TITLE" VALUE=")(.*)(?:">)@',$data,$matches);

I think the problem is because of double quote

I also try \" but still fail...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无力看清 2024-12-13 06:14:10

试试这个:

preg_match('@<INPUT TYPE="HIDDEN" NAME="TITLE" VALUE="([^"]*)">@', $data, $matches);

Try this:

preg_match('@<INPUT TYPE="HIDDEN" NAME="TITLE" VALUE="([^"]*)">@', $data, $matches);
吹梦到西洲 2024-12-13 06:14:09

它失败只是因为你的模式中有一个双空格(用 _ 标记):

INPUT TYPE="HIDDEN"__NAME="TITLE"

删除那里的一个空格并且它可以工作,无论如何,这将是我从头开始的尝试,不区分大小写,或者使用 < code>" 或 ' 虽然我不确定它是否是您想要的 name 必须是 title 的一部分在这种情况下我必须稍微编辑一下。

<?php
    $data = '<input type="hidden" name="title" value="target">';
    preg_match('/<input[^>]+value=[\'"](\w*)[\'"][^>]*>/i',$data,$matches);
    echo $matches[1]; //=> target
?>

It fails simply because you have a double space in your pattern in here (marked with _ ):

INPUT TYPE="HIDDEN"__NAME="TITLE"

Remove one space there and it works, anyway here would be my attempt from scratch, case insensitive and either with " or ' though I'm not sure if it's part of what you want that name has to be title in which case I'd have to edit it a bit.

<?php
    $data = '<input type="hidden" name="title" value="target">';
    preg_match('/<input[^>]+value=[\'"](\w*)[\'"][^>]*>/i',$data,$matches);
    echo $matches[1]; //=> target
?>
丢了幸福的猪 2024-12-13 06:14:09

你很接近...你需要匹配usng()。看起来你有一个额外的 )

preg_match('@<INPUT TYPE="HIDDEN"  NAME="TITLE" VALUE="([^"]*)">@',$data,$matches);

[^"] - 除 "

( ) 之外的任何字符 - 匹配部分

You're close... You need to match usng (). It looks like you've got an extra )

preg_match('@<INPUT TYPE="HIDDEN"  NAME="TITLE" VALUE="([^"]*)">@',$data,$matches);

[^"] - any character other than "

( ) - matching part

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文