Regex从末尾开始提取字符串


Regex to take string from the end

我有这个字符串

"Kuala Lumpur   <br/>
    53000           Setapak"

我想得到最后一个子字符串"setapak",但有时这个字符串看起来也像

pantai jerjak   <br/>
                Gelugor

如何使用regex获取最后一个子字符串?我试过用''d+去掉数字,但没有用,因为字符串总是不同的(没有数字)。

有没有一种方法可以用regex从末尾获取字符串,比如substr中的负数?

这将满足您的需要:

'w+$

'w是"单词字符"的元字符,包括字母、数字和下划线。+表示"一个或多个",$表示"行尾",所以你可以用英语将其解释为:"匹配一个由字母、数字和行尾下划线组成的单词。"

如果你只想要字母,你可以这样做:

[a-zA-Z]+$
$str = "Kuala Lumpur   <br/> 53000           Setapak";
$str = preg_replace("/'s'w*$/", " setapak", $str);
echo $str;

输出:

Kuala Lumpur   <br/> 53000           setapak

(将大写"s"换成小写)。