$text = "This is /n my text /n wow";
$quotes = explode('/n',$text);
这会将字符串拆分为“This is”“My text”“wow”
但我希望它保留字符串“/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)
)。
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 上的 CodeSpace 窗口中。
<?php
$text = "This is /n my text /n wow";
$values = preg_split("/(?<=\/n) /", $text);
print_r($values);
?>
选择 Run - F9 选项查看输出。对于复制和粘贴演示示例,我深表歉意。我不知道如何像其他一些小提琴程序一样创建专用 URL。
如果只有一个可能的分隔符,那么您只需将其附加到
explode
返回的标记中即可。但是,如果您问这个问题,例如因为您有多个可能的分隔符,并且需要知道哪一个分隔了两个标记,那么 preg_split
可能适合您。例如。对于分隔符 ','
和 ';'
:
$matches = preg_match('/(,|;)/', $text, -1, PREG_SPLIT_DELIM_CAPTURE);