我正试图在字符串中输入最后几个字。 最后一句话,我正在使用它:
$string = "Hallo dies ist ein extrem langer Text den ich gern gekuerz haette, leider bin ich selbst zu doof dafür und mach hier einen test.";
$pattern = '/[^ ]*$/';
preg_match($pattern, $string, $result);
echo "<br>The last word is:------ ". $result[0] ." ---------<br>";
它工作正常。但是,我并没有参与其中。最后一棵树的话。 我不知道如何改变模式。 感谢您提前提供任何帮助。
答案 0 :(得分:2)
最好在字符串上使用explode
,如下所示:
$string = 'Hello, my name is Jordan Doyle';
$string_array = explode(' ', $string);
echo end($string_array);
示例输出:
root@upstairslinux:~# php example.php
Doyle
root@upstairslinux:~#
这是一个获取指定数量的线的函数......
<?php
function get_last_words($amount, $string)
{
$string_array = explode(' ', $string);
return array_slice($string_array, count($string_array) - $amount);
}
$string = 'Hello, my name is Jordan Doyle';
var_dump(get_last_words(3, $string));
示例输出:
root@upstairslinux:~# php example.php
array(3) {
[0]=>
string(2) "is"
[1]=>
string(6) "Jordan"
[2]=>
string(5) "Doyle"
}
root@upstairslinux:~#
答案 1 :(得分:1)
那将完成这项工作
$pattern = '/(([^ ]*)\s+([^ ]*)\s+([^ ]*))$/';
<强> Example 强>
或
$pattern = '/((([^ ]*)[\s.]+){3})$/';
<强> Example 强>
答案 2 :(得分:0)
修改强>
$patterns = '/\b[a-zA-Z]*\b/';
并使用preg_match_all匹配所有出现次数
preg_match_all($patterns, $string, $result);
$string = "Hallo dies ist ein extrem langer Text den ich gern gekuerz haette, leider bin ich selbst zu doof dafür und mach hier einen test.";
preg_match_all($patterns, $string, $result);
foreach($result[0] as $value){
echo "$value ";
}
for($length = count($result[0]), $i = 1; $i < 4; $i++){
$offset = $length - $i;
echo $result[0][$offset];
}
上面的代码片段提取最后3个单词
答案 3 :(得分:0)
使用字符串爆炸可能会更好,例如:
<?php
$cate = 'category-node-25';
$cateId = explode('-', $cate);
echo end($cateId);
?>
输出 - &gt; 25。