Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Regex从末尾提取字符串_Php_Regex - Fatal编程技术网

Php Regex从末尾提取字符串

Php Regex从末尾提取字符串,php,regex,Php,Regex,我有这根绳子 "Kuala Lumpur <br/> 53000 Setapak" “吉隆坡 53000塞塔帕克” 我想得到最后一个子字符串“setapak”,但有时字符串看起来也像 pantai jerjak <br/> Gelugor pantai jerjak 牛汝莪 如何使用正则表达式获取最后一个子字符串?我尝试用\d+去除数字,但由于字符串总是不同(没有数字),因此无法工作 是否有一种方

我有这根绳子

"Kuala Lumpur   <br/>
    53000           Setapak"
“吉隆坡
53000塞塔帕克”
我想得到最后一个子字符串“setapak”,但有时字符串看起来也像

pantai jerjak   <br/>
                Gelugor
pantai jerjak
牛汝莪
如何使用正则表达式获取最后一个子字符串?我尝试用\d+去除数字,但由于字符串总是不同(没有数字),因此无法工作


是否有一种方法可以使用正则表达式从末尾获取字符串,如substr中的负数?

这将满足您的需要:

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

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

[a-zA-Z]+$
$str=“吉隆坡
53000 Setapak”; $str=preg_replace(“/\s\w*$/”、“setapak”、$str); echo$str;
输出:

Kuala Lumpur   <br/> 53000           setapak
吉隆坡
53000塞塔帕克

(将大写字母“s”改为小写)。

所以您只想提取
Setapak
Gelugor
?是的,没错。请注意,最后一个子串的长度可以是1到n。您是否尝试过
*\s+(.*)$
-这应该会在最后一个空格后提供所有内容。这太简单了,为什么不在请求/求助之前先请求/求助?是的,先生,我在请求之前已经学会了,但我撞到了墙。这对你来说可能很简单,但对我来说却不简单;)谢谢,先生,你救了我一天
Kuala Lumpur   <br/> 53000           setapak