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

如何使用preg_match_all函数从给定示例中提取所有颜色?

使用preg_match_all提取文本中所有颜色的方法

没问题,我来帮你搞定这个需求!要从给定的文本里提取所有颜色,用preg_match_all其实很简单,关键是写对匹配颜色的正则表达式。

先来看你的示例文本:

Name: jonathan Color: blue Gender: male
Name: anthony Color: yellow Gender: male
Name: sandra Color: pink Gender: female
Name: marry Color: white Gender: female
Name: david Color: black Gender: male

实现思路

我们需要精准匹配每个“Color: ”后面的颜色单词,这里颜色都是由纯字母组成的单单词,所以可以用正则表达式捕获这个位置的内容。

代码示例

$text = <<<TEXT
Name: jonathan Color: blue Gender: male
=========================
Name: anthony Color: yellow Gender: male
=========================
Name: sandra Color: pink Gender: female
=========================
Name: marry Color: white Gender: female
=========================
Name: david Color: black Gender: male
=========================
TEXT;

// 执行正则匹配,捕获所有颜色
preg_match_all('/Color: (\w+)/', $text, $matches);

// 提取到的颜色集合存放在$matches[1]中
$colors = $matches[1];

// 输出结果
print_r($colors);

代码解释

  • /Color: (\w+)/:这个正则的作用是匹配固定字符串Color: ,然后通过(\w+)捕获后面的一个或多个字母(\w匹配字母、数字、下划线,这里颜色都是纯字母,完全适用)。
  • preg_match_all会遍历整个文本,把所有符合匹配规则的结果存入$matches数组,其中$matches[1]就是我们需要的所有颜色值。

运行这段代码后,输出结果如下:

Array
(
    [0] => blue
    [1] => yellow
    [2] => pink
    [3] => white
    [4] => black
)

扩展说明

如果你的颜色值包含空格或连字符(比如light blue、dark-gray),可以把正则表达式调整为/Color: ([\w\s-]+)/,这样就能适配这类复杂的颜色名称了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:11:59