提取文本文件中的文件名称,如何弄比较好

叶子哟 2006-02-06 11:25:14
一个文本文件,格式如下:
<body>
<par dur="8s">
<text src="mms.txt" region="Text" />
<text src="mms1.txt" region="Text" /><text src="mms2.txt" region="Text" />
<text src="tex.txt" region="Text" />
</par>
<par dur="8s">
<img src="ly.jpg" region="Image" />
</par>
</body>


如何提取里面的所有文件名序列?如以上结果为mms.txt,mms1.txt,mms2.txt,tex.txt,ly.jpg
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
funcreal 2006-02-06
  • 打赏
  • 举报
回复
楼上真是太负责任了。
把代码写得这么完整。


public static String readFile(String fileName)这个方法中的关闭操作应该写到finally里面,不然就没用了。
bionergy 2006-02-06
  • 打赏
  • 举报
回复
用正则表达式提取这种东西比较方便,关于使用方法可以去网上搜一下,或者是看java.util.regx这个包下的javaapi文档。下面我写的试了可以把那些文件名提取出来,楼主参考一下吧。

package sample;
import java.util.regex.*;
import java.io.*;

public class GetFileName {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//从文件里面读取内容到一个字符串,把要解析的内容放在文本文件中。
String fileContent=readFile("sample.txt");
//找字符串中的文件名
findNames(fileContent);
}
/**
* 从文件里面读取内容到一个字符串
* @param fileName
* @return
* @throws IOException
*/
public static String readFile(String fileName) throws IOException{
StringBuffer sbFileContent=new StringBuffer(500);
FileReader fr=new FileReader(fileName);
BufferedReader br=new BufferedReader(fr);
String lineContent=null;
while((lineContent=br.readLine())!=null){
sbFileContent.append(lineContent);
}
br.close();
fr.close();
return sbFileContent.toString();
}

/**
* 从字符串中抽取像文件名的字符串
* @param content
*/
public static void findNames(String content){
//这边是以引号作为分隔符限定的,如果是不带引号的html文件,正则表达式可能要复杂一点
Pattern p=Pattern.compile("[^\"]+\\.[^\"]+");
Matcher m=p.matcher(content);
while(m.find()){
System.out.println(m.group());
}
}

}
jlbqd 2006-02-06
  • 打赏
  • 举报
回复
正则表达式果然厉害
wfhlxl 2006-02-06
  • 打赏
  • 举报
回复
为中华之崛起而上CSDN.NET

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧