我想在字符串中的所有单词中添加“:”字符;
$user = "name, surname, username"
$newString = ":name, :surname, :username"
我该怎么做?
答案 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 ', '