如何使用正则表达式获取文件扩展名?

use*_*834 2 java regex string

我正在尝试从包含文件名或目录的字符串中提取子字符串.提取的子字符串应该是文件扩展名.我在网上做了一些搜索,发现我可以使用正则表达式来实现这一点.我发现这^\.[\w]+$是一个可以找到文件扩展名的模式.问题是我对正则表达式及其功能并不完全熟悉.

基本上如果我有一个像C:\Desktop\myFile.txt我想要正则表达式的字符串然后找到并创建一个仅包含的新字符串.txt

anu*_*ava 13

正则表达式捕获文件扩展名是:

(\\.[^.]+)$
Run Code Online (Sandbox Code Playgroud)

请注意,点需要转义以匹配文字点.然而,[^.]是一个带有否定的字符类,不需要任何转义,因为dot字面上处理[].

\\.        # match a literal dot
[^.]+      # match 1 or more of any character but dot
(\\.[^.]+) # capture above test in group #1
$          # anchor to match end of input
Run Code Online (Sandbox Code Playgroud)


Tou*_*one 6

您可以使用 String 类 split() 函数。在这里您可以传递正则表达式。在这种情况下,它将是“\.”。这会将字符串分成两部分,第二部分将为您提供文件扩展名。

public class Sample{
  public static void main(String arg[]){
    String filename= "c:\\abc.txt";

    String fileArray[]=filename.split("\\.");

    System.out.println(fileArray[fileArray.length-1]); //Will print the file extension
  }
}
Run Code Online (Sandbox Code Playgroud)