所以我们假设我们有一个像“CS x1CD x2CE x3”
这样的文字我想要做的是将每个x1替换为x1 \ n,x2替换为x2 \ n,x3替换为x3 \ n等。在运行期间,之前不知道这些值是什么,但基本上在每个x之后[0-9] +我们想追加换行符。
我该怎么做?我尝试使用正则表达式,如
preg_replace("/x[0-9]+/", "${1}\n", $request['item_name']);
但这不起作用,因为它只使用第一个结果。
答案 0 :(得分:2)
您可以避免使用\K
来引用捕获组:
$result = preg_replace("/x[0-9]+\K/", "\n", $request['item_name']);
\K
从匹配结果中删除左侧的所有内容。
如果您的服务器在linux / unix系统上运行,您可以使用PHP_EOL跳过大部分卷曲/双/单引号/换行问题:
$result = preg_replace("/x[0-9]+/", '$0' . PHP_EOL, $request['item_name']);
答案 1 :(得分:1)
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个:
<?php
$string = $request['item_name'];
$string = preg_replace('/(x\d+)/', '$1\n', $string);
echo $string;
?>
<强> 样本 强>