我想从字符串中删除前三个项目,但问题是我无法使用
substr()
,因为我不知道每个单词可能包含多少个字符,因为数据来自UI
即;
$str = A big brown fox jumped over the log;
//$str = A slow red fox jumped over the log;
//$str = An enthusiastic brown fox jumped over the log;
我想删除前三个单词(包括空格),以便新字符串以“fox”开头,然后我计划将此数据存储在新变量中。
我希望有一种比分解它并从数组中删除 0,1 和 2 更简单的方法,所有这些都是我不熟悉的,如果有人知道如何一行,如果您愿意与我分享,我将非常感激我。
假设在空间上进行简单的分割来区分单词
$str = 'A big brown fox jumped over the log';
$rest = preg_split('/ /',$str, 4)[3];
如果您还想调整标点符号,请修改正则表达式
如果您使用的 PHP 版本不支持数组取消引用:
$str = 'A big brown fox jumped over the log';
$split = preg_split('/ /',$str, 4);
$rest = $split[3];
仅仅从字符串前面截取前n个单词来生成临时数组是低效且间接的。只需使用
preg_replace()
来匹配并删除 n 个非空白序列,后跟一个空白字符。
代码:(演示)
$str = 'A big brown fox jumped over the log';
var_export(
preg_replace('/^(?:\S+\s){3}/', '', $str)
);
// 'fox jumped over the log'