一個簡單的正則表達式可以在一個字符串的末尾匹配的空間,隨後通過任意數量的字母(或結腸),後跟一個空格,其次是任意數量的字母:
$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
你如何定義一個字?以及哪些字符可以分開單詞? –
'$ 1'不是指數量,而是指數量。這是你的第一個匹配序列。 – Sampson
@YetAnotherGeek查看我更新的問題 – Andrej