在字符串的每个单词(以逗号分隔)中添加前缀

时间:2018-08-16 06:46:37

标签: php regex

我有一个类似

的字符串
$str = ["abc","cde","efg"];

我想在每个单词中添加@前缀,所以它变得像

$str = "@abc","@cde","@efg";

实际上,我必须在FULLTEXT上的mysql中运行搜索查询,在该查询中,我需要给出类似"@abc","@cde"的字符串

2 个答案:

答案 0 :(得分:1)

如果字符串为'"abc","cde","efg"',则可以使用str_replace和substr在每个项目上添加@。

$str = '"abc","cde","efg"';

$str = '"@' . substr(str_replace(',"', ',"@', $str),1);
Echo $str; //"@abc","@cde","@efg"

str_replace将在除第一个项目之外的所有项目上添加@,然后substr和string concatenate将执行第一个项目。

https://3v4l.org/SSRIr

答案 1 :(得分:0)

提供的字符串如下:

$str = "abc,cde,efg";

您可以爆炸它:

$array = explode(',', $str);

在这种情况下,$ array看起来像这样:

$array = ["abc","cde","efg"];

并在每次添加前缀的过程中进行迭代。

$prefix = '@';
foreach ($array as $key => $item) {
    $array[$key] = $prefix . $item;
}

然后转换回字符串。

$str = implode (',', $array);

除非您只想在可以匹配特定模式的某些字符串上添加前缀,否则就不需要 regex