PHP-在字符串中的所有单词中添加“:”字符

时间:2018-04-07 23:37:21

标签: php

我想在字符串中的所有单词中添加“:”字符;

$user = "name, surname, username"

$newString = ":name, :surname, :username"

我该怎么做?

4 个答案:

答案 0 :(得分:1)

是的

$string = preg_replace('/\b(\w)/', ':$1', $string);

输出

:name, :surname, :username

试试online

解释

  • \b - 匹配单词bondry
  • (\w) - 捕获一个a-zA-Z0-9_

然后

  • :只是在
  • 中添加
  • $1添加捕获的字符。

简单,单词边界意味着我们捕获第一个字符,然后我们添加:并重新捕获。

答案 1 :(得分:0)

我会做这样的事情:

<?php
    $user = "name, surname, username";
    $array = explode(", ", $user);
    $array = array();
    foreach ($array as $use) {
        $array[] = ":" . $use;
    }
    $array = implode(", ", $array);
    var_dump($array);
?>

我得到的输出是:

string(26) ":name, :surname, :username"

答案 2 :(得分:0)

试试这个:

$user = "name, surname, username";
$words = explode(', ', $user);
$newString = implode(', ', array_map(function($i) {return ':' . $i;}, $words));

假设', '是您的分隔符。如果没有,请更换它。

答案 3 :(得分:0)

这是一个使用preg_replace的简单技术,用于正则表达式。

$user = "name, surname, username";
$user = ":" . $user; //appends to beginning of string
$new_string = preg_replace('/, /',',:', $user ); //the pattern can be written better searching for ', '