通过正则表达式获取文件路径中的最后一个反斜杠

5

给定文件路径如下:\\server\folder_A\folder_B\etc\more.mov

我需要一个正则表达式,能够给出最后一个反斜杠,以便我可以提取实际的文件名。

我的尝试"$\\"没有返回任何内容。

我正在使用ColdFusion。

有什么建议吗?


你想匹配哪种正则表达式?grep?Perl?Python?POSIX? - Daniel DiPaolo
你真的不需要正则表达式来做那件事。 - ale
3个回答

7

关于什么?

<cfset fileName = GetFileFromPath("\\server\folder_A\folder_B\etc\more.mov") />

我喜欢这个比我的答案更好。显式的函数名称提高了可读性,它可能处理更多的路径分隔符而不仅仅是 \。 - GWB

6
你是否只需要最后一个反斜杠后面的所有内容(文件名)? ([^\\]+)$ 文件名将包含在捕获中。
要从最后一个反斜杠开始匹配,您可以使用... \\[^\\]+$ 我不熟悉Coldfusion,但我假设它支持正则表达式和捕获。如果您确实需要位置,并且可以从匹配中获取该位置,则第二个表达式可能是您想要的。
(为了清晰起见并回答评论而进行了编辑)

不,只需返回字符串中最后一个反斜杠的位置即可。不过,直接获取最后一个反斜杠后面的内容也可以。 - Anthony
@Anthony:嗯,正则表达式无法获取任何“位置”,它只能给出匹配的子字符串。因此,如果您想要正则表达式,我会使用此答案中提供的内容(尽管应该有额外的反斜杠 ([^\\]+)$)。 - serg
真的 - 我应该在我的问题中更加精确。我正在使用ColdFusion中的REFind函数,它需要一个正则表达式来查找子字符串,并报告它找到它的索引。今天是星期五... - Anthony
除了一个无法匹配的括号,它是有效的:(([^\]+)$) - Anthony
@serg555,一些语言中的正则表达式函数会返回匹配位置的字符串。 - maček

5

你一定要使用正则表达式吗?为什么不将字符串分割并获取最后一个元素呢?

<cfset fileName = ListLast(filePath, "\\")>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接