任何人都知道如何使用preg_match来获取最后一位数字:
images/listings/listings_id_15_4.png或
images/listings/listings_id_15_4.jpg
扩展名可能不同,我只需要找到“。”之前的最后一位数字。 从这两个字符串我只需要'4'
答案 0 :(得分:1)
您可以使用$
,即[在字符串末尾]
您从获得扩展的部分开始:
\.[a-zA-Z]$ // this will match '.png' and '.jpg'
// Or alternatively
\.\w{2,4}$ // this will match '.png' and '.jpg', 2 till 4 chars long
然后你想得到它前面的数字,所以从后面展开它:
([0-9]+)\.[a-zA-Z]+$ // this will also select the number in front of it
现在也选择其余部分,而不是将它放在一个组中(同样适用于扩展):
.*?([0-9]+)\.[a-zA-Z]+$ // this will select the whole thing, but only the number you want is in a group
使用该正则表达式,您可以在代码中使用\\1
或$1
答案 1 :(得分:0)
/\d(?=\.\w+$)/
这匹配一个数字,后跟一个点和一个或多个单词字符(这是我想要的扩展名)。
如果您想要一个完整的数字而不是一个数字,请在+
后添加\d
。