正则表达式获取最后的字符

时间:2014-07-03 19:23:45

标签: regex

我想写一个正则表达式,它会将最后一个“斜杠”“/”的字符带到右边。

示例1:http:// thesite.com/tester/blabla/this_is_the.jpg - 我只想提取“this_is_the.jpg” 例2:http:// thesite.com/tester/blabla/this_is_2.jpg - 只有“this_is_2.jpg”

4 个答案:

答案 0 :(得分:3)

这很简单:

[^/]+$

基本上说:“最后给我所有字符都不是斜线”。

示例:

$ echo 'http:// thesite.com/tester/blabla/this_is_the.jpg' | egrep -o '[^/]+$'
this_is_the.jpg

答案 1 :(得分:1)

简短回答:

/[^\/]*$/

的解释

$匹配字符串的结尾
   [^\/]/之外的任何字符    *与先前令牌匹配的任意数量的内容

答案 2 :(得分:1)

这里使用的是sed:

sed 's#.*/\([^/]*\)$#\1#'

答案 3 :(得分:0)

我会亲自将它锚定在扩展名上 - 然后验证一下就可以了。

"/bla bala/this_is_the.jpg" 

\/([^\/]+\.jpg)$ 
Array
(
    [0] => /this_is_the.jpg
    [1] => this_is_the.jpg
) 

用于其他文件类型

\/([^\/]+\.(jpg|png|bmp))$

Array
(
    [0] => /this_is_the.jpg
    [1] => this_is_the.jpg
    [2] => jpg
)

对于其他人(不能评论)我会避免*和+一起去,你真的希望它匹配这个“/ bla bala / this_is_the /”〜无文件