2010-07-20 110 views
0

如何确定文件名字符串的文件扩展名?正则表达式:我如何捕获文件扩展名?

可以说我有

I'm.a.file.name.tXt

正则表达式应该返回TXT

+8

许多语言已经建立 - 处理文件名和扩展名的方法。你在用什么? – Telemachus 2010-07-20 17:18:41

+2

您用来运行正则表达式的语言/平台是否具有文件处理例程? – 2010-07-20 17:19:05

+0

我很好奇:你为什么每次都写'tXt',而不是'txt'? – 2010-07-20 18:32:23

回答

3

\.[^.]*$应该这样做

+0

作为一个扩展,你可能想对'\ .'进行后视 - 所以'(?<= \。)[^。] * $' - 以避免可能在稍后删除'.'。虽然并非所有的正则表达式实现都支持向后看,并且我们不知道这是为了什么。 – 2010-07-20 17:33:55

-1
/^(.*?)\.(.*)$/ 

的 '?'使它变得贪婪。你的结果将在第二组中。

+0

我和 a.file.name.tXt不只是tXt – NullVoxPopuli 2010-07-20 17:21:22

+0

在这种情况下,删除贪婪的比赛放在第二组。 你说你只想'tXt'。 – 2010-07-20 17:22:15

+1

'?'量化** **懒**,*不*贪*! – 2010-07-20 17:27:53

0

什么语言是这个吗?很可能你不想实际使用正则表达式 - 假设这个名称是一个字符串,你可能只想做一些事情,比如分割它,然后选择最后一个段。好吧,这是一个正则表达式的答案,但不是一个正确的答案。

2

你可能不需要正则表达式 - 大多数语言将有相同的:(如果你确实需要的正则表达式出于某种原因,Scharron's answer是正确的)

ListLast(Filename,'.') 

相关问题