我变量
$test = "test1<br />
test2<br />
test3";
我想在字符串中的每个单词之前添加一个Letter.Also该字符串包含break标签,因为我发布它。
想看起来像:
$test = "Ptest1<br />
Ptest2<br />
Ptest3";
答案 0 :(得分:2)
您可以使用正则表达式遍历字符串并添加您的值。
$arr = "test1<br />
test2<br />
test3";
echo preg_replace('/^(\h*)([A-Za-z])/m','$1P$2',$arr);
PHP演示:https://eval.in/630398
正则表达式演示:https://regex101.com/r/xV9nY0/1
/
是分隔符,指示正则表达式的开始和结束位置。
m
修饰符会在每行开头处进行^
匹配。
\h*
是字母字符前的任意数量的空格(您可以添加到如果还允许其他字符,那个字符类。)
要允许该行以数字开头,请尝试:
echo preg_replace('/^(\h*)([A-Za-z\d])/m','$1P$2',$arr);
答案 1 :(得分:0)
$test = "test1<br />
test2<br />
test3";
$temp_test = [];
$char = 'P';
$data = explode('<br />', $test);
foreach($data as $key => $value) {
$temp_test[] = $char.''.trim($value);
}
$new_test = implode('<br />', $temp_test);
答案 2 :(得分:0)
使用preg_replace
函数和特定正则表达式模式的单行解决方案:
$letter = "P";
$replaced = preg_replace("/(?<=[^<]|^)\b(\w+?)\b/", $letter. "$1", $test);