可以使用Java中的正则表达式来提取文件名和后缀名。示例代码如下:
```java
String url = "http://127.0.0.1/profile/upload/2023/05/09/echarts地图_20230509171232A001.pdf";
Pattern pattern = Pattern.compile(".*/(.*?)\\.(.*)");
Matcher matcher = pattern.matcher(url);
if (matcher.find()) {
String fileName = matcher.group(1); // 获取文件名
String suffix = matcher.group(2); // 获取后缀名
System.out.println("文件名:" + fileName);
System.out.println("后缀名:" + suffix);
}
```
输出结果为:
```
文件名:echarts地图_20230509171232A001
后缀名:pdf
```
其中,正则表达式`.*/(.*?)\\.(.*)`的含义是:
- `.*`:匹配任意字符(除换行符外)0次或多次。
- `/`:匹配斜杠字符。
- `(.*?)`:非贪婪模式匹配任意字符(除换行符外)0次或多次,即匹配文件名部分。
- `\\.`:匹配点号字符,需要使用转义符号“\”。
- `(.*)`:贪婪模式匹配任意字符(除换行符外)0次或多次,即匹配后缀名部分。