2012-10-12 94 views
2

最后的数字我有这个字符串:标签:domain.com,2012年10月12日:饲料/信道/ ID/335充分利用字符串

我试着去得到这个字符串的最后一个数字到一个变量。这个字符串中的日期也是动态的,但我不需要这个变量。

这里是我的代码:

$string = "tag:domain.com,2012-10-12:feed/channel/id/335"; 

preg_match('/tag\:domain\.com,|\d+|-|\d+|-|\d+|\:feed\/channel\/id\/|\d+/', $string, $matches); 


$last_digits = ???  

也许有这样做的更简单的方法?

回答

6

这应该工作。

$aParts = explode('/', $string); 
$iId = end($aParts); 
+0

是的,那有效! 谢谢! –

+0

不客气。 – Ben

0

是的。使用锚定的字符串的末尾:

preg_match('/\d+$/', $string, $matches); 

$表示字符串的结束时,或在多行模式的行)

然后可以检索这样的ID:

$last_digits = $matches[0]; 
+0

本·弗朗森代码工作,但我怎么会得到使用您的代码的变量? –

+0

只需'$ id = $ matches [0];'...我会将其编辑到答案 –

0
preg_match('/(\d+)$/', $string, $matches); 

$ - 意味着结束

$匹配[1]将有你的价值

+0

LOL SAME回答如下 – Furry

+0

yeap,我能说什么,他是更快大声笑但我没有我的代码= P – BeRocket

+0

@Furry Lol;使用全部大写字母 – Sammaye

0

这应该工作:

$string = "tag:domain.com,2012-10-12:feed/channel/id/335"; 
$pattern = "/\/(\d+)$/"; 
preg_match($pattern, $string, $matches); 

$number = $matches[1]; 

基本上,你问这是一个/和字符串$结束之间的任何数字。

+2

你需要什么'i'修饰符? –

+0

实际上没有什么,因为没有字母,大小写不敏感意味着什么,只是我猜的坏习惯。编辑。 –