我的字符串类似于/sdcard/filename.pdf
任何人都可以从正则表达式中获取整个路径中的“文件名”字符串。
感谢adv:)
答案 0 :(得分:6)
[^\/]+$
假设你的字符串只是路径。
$
匹配字符串的结尾
[^\/]
将匹配/
以外的任何内容
+
表示至少匹配前一个字符([^\/]
)
因此,这将匹配字符串中最后一个/
之后的任何内容。
答案 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)
"/[^/]+/([^\.]+)\..+"
文件名是第一个反向引用。