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

PHP实现提取文本中匹配指定模式的所有变量

用PHP提取文本中指定模式的变量解决方案

嘿,我来帮你搞定这个提取文本中变量的需求!你要找的是被%符号包裹的变量,比如%final_walk_through_date%这种,用PHP的正则表达式就能轻松实现。

核心实现思路

我们可以用preg_match_all()函数配合正则表达式,精准匹配并提取所有符合%变量名%格式的内容。这里的变量名假设是由字母、数字和下划线组成的(和你的示例一致),正则模式可以写成/%(\w+)%/。

完整代码示例

<?php
// 你的原始文本内容
$originalText = 'Lorem Ipsum %final_walk_through_date% 只是印刷和排版行业的占位文本。%buyer_full_name% Lorem Ipsum自15世纪以来一直是该行业的标准占位文本,当时一位不知名的印刷工拿出一排活字,打乱顺序制作了一本活字样本册。它不仅历经五个世纪,还跨越到电子排版时代,基本保持不变。它在20世纪60年代随着Letras...的发布而普及...';

// 定义匹配模式:捕获%包裹的变量名
$regexPattern = '/%(\w+)%/';
// 执行全局匹配
preg_match_all($regexPattern, $originalText, $matchResults);

// 提取到的变量名存储在$matchResults[1]中
$extractedVariables = $matchResults[1];

// 打印结果验证
print_r($extractedVariables);
?>

代码解释

  • $regexPattern = '/%(\w+)%/':这里的%是字面匹配符号,(\w+)是捕获组,用来匹配1个及以上的字母、数字或下划线(也就是变量名部分)。
  • preg_match_all():这个函数会在文本中全局搜索所有符合模式的内容,把完整匹配项存在$matchResults[0],捕获到的变量名存在$matchResults[1]。
  • 运行这段代码后,你会得到一个包含两个元素的数组:['final_walk_through_date', 'buyer_full_name'],正是你要提取的变量。

扩展说明

如果你的变量名里包含连字符(比如%user-name%),只需要把正则模式改成/%([\w-]+)%/就能支持这种情况啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:36:40