我想写一个正则表达式,它会将最后一个“斜杠”“/”的字符带到右边。
示例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”
答案 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 /”〜无文件