获取文件名的正则表达式

时间:2011-05-13 11:05:59

标签: regex

我的字符串类似于/sdcard/filename.pdf

任何人都可以从正则表达式中获取整个路径中的“文件名”字符串。

感谢adv:)

4 个答案:

答案 0 :(得分:6)

[^\/]+$

测试online here on Rubular

假设你的字符串只是路径。

$匹配字符串的结尾 [^\/]将匹配/以外的任何内容 +表示至少匹配前一个字符([^\/]

因此,这将匹配字符串中最后一个/之后的任何内容。

答案 1 :(得分:0)

如果你想要最后一个/之后的所有内容,你可以这样做

String fileName = pathString.substring(pathString.lastIndexOf("/"),pathString.length());

其中pathString是路径名所在的字符串。(显然,如果lastIndexOf返回null,则会失败,因此您需要进行一些错误检查。)

/([^\/]+)$/这样的模式也应该有用。

答案 2 :(得分:0)

正则表达式非常简单,这里是:

/[\w-_]+/([\w-_]+)\.pdf

括号位于“文件名”部分周围,因此您可以从整个路径中提取它。您可以在第一个匹配组中找到它,组(1)后面的组(1)。

如果你有任意文件夹深度的文件路径,例如/home/myhome/pdf-store/filename.pdf,您将使用:

(/[\w-_]+)*/([\w-_]+)\.pdf

然后,您将评估第二个组的文件名,因为第一个组表示文件夹路径。即你在组(2)中有它。

答案 3 :(得分:0)

"/[^/]+/([^\.]+)\..+"

文件名是第一个反向引用。