gpt4 book ai didi

php - 从字符串中删除最后两个单词

转载 作者:行者123 更新时间:2023-12-01 19:35:07 25 4
gpt4 key购买 nike

我对 preg_replace 完全陌生,但下面的代码删除了字符串中的最后一个单词:

preg_replace('/\W\w+\s*(\W*)$/', '$1', $var);

我正在尝试修改它,以便删除最后两个单词。

我唯一能想到的就是将 $1 替换为 $2,但这似乎根本没有任何效果,而且可能只是愚蠢的:/

有问题的字符串看起来有点像这样:

Lorem ipsum dolor sit amet. Source: LOREM

我想删除来源:LOREM

最佳答案

一个简单的正则表达式可以匹配字符串末尾的空格,后跟任意数量的字母(或冒号),后跟空格,后跟任意数量的字母:

$str = "Lorem ipsum dolor sit amet. Source: LOREM";
$str = preg_replace( "/\s[a-z:]+\s[a-z]+$/i", "", $str );

// Lorem ipsum dolor sit amet.
echo $str;

表达式分解如下:

\s       // Single space
[a-z:]+ // Any letter, a to z, or a colon, 1 or more times
\s // Single space
[a-z]+ // Any letter, a to z, 1 or more times
$ // End of string

演示:http://codepad.org/G22LnDDY

另一种方法是使用 explode 创建单词数组,并删除最后两个。

$str = "Lorem ipsum dolor sit amet. Source: LOREM";
$words = explode( " ", $str );
array_splice( $words, -2 );

// Lorem ipsum dolor sit amet.
echo implode( " ", $words );

演示:http://codepad.org/6XwqvwuP

关于php - 从字符串中删除最后两个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10541808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com