使用PHP从另一个字符串返回预选单词的字符串

穆勒

我有一个带有产品名称的字符串。此字符串也包含颜色。

示例:“红色T恤白黄色条纹黑点”($ productname)

PHP函数现在应该以字符串形式返回T恤的所有颜色。

我想我知道如何返回一种颜色,例如红色:

if (stripos($productname, 'red') !== false) {
    return 'red';
}

如何返回所有颜色的字符串(逗号分隔)?在这种情况下,它应该是“红色,白色,黄色,黑色”。我有30种不同颜色的清单。

有人可以给我提示吗?

谢谢!

u_mulder

首先-您需要知道要找到什么颜色。

因此,必须定义您的颜色数组

$colors = ['red', 'white', 'black', 'yellow', 'green'];
// create a regexp pattern from this array
// add `i` flag for turning off case sensistivity
$colors_regexp = '/(' . implode('|', $colors) . ')/i';    
$matches = [];
$string = 'Red T-Shirt White Yellow Stripes Black Dots';
preg_match_all($colors_regexp, $string, $matches);
// print_r `$matches` to see the matches:
echo'<pre>',print_r($matches),'</pre>';
// use proper key from `$matches`:
echo implode(', ', $matches[0]);    // `Red, White, Yellow, Black`

更进一步-您可以添加\b含义,word boundary以便其他词与您的正则表达式类似whitenedblackened不匹配:

preg_match_all(
    '/\b(black|white|red)\b/i', 
    'White or red blackened item', 
    $matches
);
// matches[0] shows: `Array( [0] => White [1] => red )`, no `black`

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

字符串包含另一个字符串

检查另一个字符串中的单词列表

在另一个字符串的开头插入字符串

如何使用另一个字符串作为密码来加密/解密一个字符串?

用另一个字符串环绕字符串

PHP-检查一个字符串是否包含另一个字符串中的任何字符

PHP-检查一个字符串是否是另一个字符串的旋转

如何检查一个字符串是否以另一个字符串开头-PHP

使用re在另一个字符串中找到一个字符串

检查一个字符串是否是另一个字符串的子序列而不是子单词的算法

使用Lo在另一个字符串中使用AND搜索字符串数组

使用动态中的指针将一个字符串复制到另一个字符串

使用嵌套循环在另一个字符串中出现一个字符串

字符串中的单词等于另一个字符串中的单词排列

Java使用嵌套循环在另一个字符串中查找一个字符串出现的次数

在另一个字符串中的某个单词之前插入字符串

使用数组和foreach循环从另一个字符串中获取一个字符串

使用bash脚本如何检查一个字符串是否在另一个字符串内

排序一个字符串数组,使用另一个字符串数组确定顺序

如何从另一个字符串php提取字符串

如果字符串在另一个字符串内

使用 PHP 将一个字符串与另一个字符串匹配

将字符串插入另一个字符串的简单方法 - PHP

用另一个字符串替换字符串中的单词 - Javascript

从 AsyncTask 返回一个字符串以在另一个活动中使用?

如何返回在另一个字符串中找到的字符串的索引?

测试字符串是否包含另一个字符串作为单个单词

从另一个字符串限制字符串

如何将一个字符串与另一个字符串匹配并为其返回 true?