$text = "This is /n my text /n wow";
$quotes = explode('/n',$text);
这会将字符串拆分为"这是"我的文本"哇">
但我希望它保持字符串"/n"不变,而不是切断它,输出应如下所示:
"这是/n" "我的文字/n" "哇">
将
字符串分解为数组,然后将分隔符附加到结果数组的每个元素上。
$sep = "/n";
$text = "This is /n my text /n wow";
$quotes = explode($sep,$text);
$quotes = array_map(function($val) use ($sep) {
return $val . $sep;
}, $quotes);
$last_key = count($quotes)-1;
$quotes[$last_key] = rtrim($quotes[$last_key], $sep);
(可能也需要trim($val)
(。
如果您只有一个可能的分隔符,那么您可以简单地将其附加到explode
返回的令牌中。但是,如果您要问这个问题,例如,因为您有多个可能的分隔符并且需要知道哪一个分隔了两个令牌,那么preg_split
可能适合您。例如,对于','
和';'
的分离器:
$matches = preg_match('/(,|;)/', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
您是否考虑过使用 preg_split()
函数。根据文档:
preg_split — 通过正则表达式拆分字符串
使用此函数,应用与空格后跟前面的/n
字符串匹配的正后视。
$quotes= preg_split("/(?<='/n) /", $text);
您可以通过在上述语句之后执行print_r($quotes);
来测试这是所需的功能。print_r
函数的此输出将类似于以下内容:
Array ( [0] => This is /n [1] => my text /n [2] => wow )
您可能需要对值使用trim()
来清除前导和尾随空格,但总体而言,它似乎可以满足您的要求。
演示:
如果要测试此功能,请尝试复制以下代码块并将其粘贴到 http://phpfiddle.org 上的"代码空间"窗口中。
<?php
$text = "This is /n my text /n wow";
$values = preg_split("/(?<='/n) /", $text);
print_r($values);
?>
选择"运行 - F9"选项以查看输出。对于复制和粘贴演示示例,我深表歉意。我不知道如何像其他一些小提琴程序一样创建专用 URL。