You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中使用正则表达式提取文本?

在PHP中使用preg_match提取HTML里的input值

没问题,我来给你捋清楚怎么用preg_match搞定这个需求!

针对你给出的这段HTML片段:

我们可以直接写精准匹配的正则,确保只拿到这个特定input的value值。这里有完整的代码示例:

<?php
// 你的目标HTML片段
$targetHtml = '<input name="__CUTE" id="__CUTE" value="/dfdjksfhnvdj9326r" type="hidden">';

// 用preg_match匹配并捕获value内容
preg_match('/<input name="__CUTE" id="__CUTE" value="([^"]+)" type="hidden">/', $targetHtml, $matchResult);

// 检查并输出结果
if (isset($matchResult[1])) {
    echo "提取到的value值:" . $matchResult[1];
    // 这里会输出:/dfdjksfhnvdj9326r
} else {
    echo "未找到匹配的内容";
}
?>

正则表达式说明

  • ([^"]+)是核心的捕获组,意思是匹配所有不是双引号的字符,这样就能精准截取value属性里的内容,不会把后面的闭合引号也包含进来。
  • 整个正则完全匹配你给出的input标签结构,确保不会误匹配页面里的其他input。

如果是完整页面的情况

要是后续你拿到了完整页面的HTML,我们可以把正则写得更灵活一些,不用依赖属性的顺序,只要匹配name="__CUTE"的input就行:

<?php
$fullPageHtml = "这里替换成完整页面的HTML内容";

// 更灵活的正则,适配不同的属性顺序
preg_match('/<input[^>]+name="__CUTE"[^>]+value="([^"]+)"[^>]*>/i', $fullPageHtml, $matchResult);

if (isset($matchResult[1])) {
    echo "提取到的value值:" . $matchResult[1];
}
?>

这个正则的细节:

  • <input[^>]+:跳过input标签开头后的任意属性内容(只要不是标签闭合符>)
  • name="__CUTE":精准锁定name为__CUTE的input
  • [^>]+value="([^"]+)":继续跳过其他属性,找到value并捕获内容
  • /i:忽略大小写,避免HTML里属性大小写不一致的问题(比如Name="__CUTE")

最后提一句:虽然正则能处理这类简单场景,但如果是结构复杂的HTML,更推荐用DOMDocument这类专门的HTML解析工具——不过既然你明确要求用preg_match,上面的写法完全能满足你的需求。

内容的提问来源于stack exchange,提问作者waylan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:33:15