`
susiya
  • 浏览: 91071 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 正则表达式解析csv文件

    博客分类:
  • Java
阅读更多
最近在写Java解析CSV文件,由于公司不支持javacsv第三方包,由此想到用正则表达式解析CSV文件,我参考了该作者的代码http://blog.csdn.net/notonlyforshe/article/details/7384078,做了些改动,试了还不错。

BufferedReader br = new BufferedReader(new FileReader("test.csv"));
Pattern pattern = Pattern.compile("(,)?((\"[^\"]*(\"{2})*[^\"]*\")*[^,]*)");
String strLine = null;
while((strLine = br.readLine()) != null) {
	Matcher matcher = pattern.matcher(strLine);
	while(matcher.find()) {
		String cell = matcher.group(2);//group(2) is ((\"[^\"]*(\"{2})*[^\"]*\")*[^,]*)
		Pattern pattern2 = Pattern.compile("\"((.)*)\"");
		Matcher matcher2 = pattern2.matcher(cell);
		if(matcher2.find()) {
			cell = matcher2.group(1);
		}
		//... get the cell and you analysis 
	}
}

0
1
分享到:
评论
5 楼 susiya 2014-04-23  
bitray 写道
susiya 写道
bitray 写道
为何不用split呢,整个csv不就是换行和逗号组成的吗

如果内容里包含逗号呢?

其实我在回答就是抬杠了,因为内容里面有都好外面是有引号的。拆分你的时候你甚至,"拆分都可以。当然代码可读性差

I have nothing to say
4 楼 bitray 2014-04-21  
susiya 写道
bitray 写道
为何不用split呢,整个csv不就是换行和逗号组成的吗

如果内容里包含逗号呢?

其实我在回答就是抬杠了,因为内容里面有都好外面是有引号的。拆分你的时候你甚至,"拆分都可以。当然代码可读性差
3 楼 susiya 2014-04-21  
bitray 写道
为何不用split呢,整个csv不就是换行和逗号组成的吗

如果内容里包含逗号呢?
2 楼 bitray 2014-04-21  
为何不用split呢,整个csv不就是换行和逗号组成的吗
1 楼 sgq0085 2014-04-21  
String line = "1,2";
String[] columns = line.split(",",-1);

相关推荐

    JAVA正则表达式小程序

    总的来说,"JAVA正则表达式小程序"结合了Java的正则表达式处理能力,实现了从网页中提取特定信息并将其结构化存储到CSV文件中,为数据分析和处理提供了便利。这样的程序在爬虫、信息提取和自动化报告生成等领域具有...

    精通正则表达式~~~

    解析CSV文件... 213 第6章:打造高效正则表达式.... 221 典型示例... 222 稍加修改——先迈最好使的腿... 223 效率vs准确性... 223 继续前进——限制匹配优先的作用范围... 225 实测... 226 全面考查回溯......

    正则表达式30分钟入门教程

    正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,...请打开`正则表达式30分钟入门教程.mht`文件,进一步深入了解这些概念,通过实例练习巩固所学知识,快速成为正则表达式的熟手。

    java实现csv 转 xml

    使用`java.util.Scanner`或正则表达式解析CSV,然后使用DOM(文档对象模型)或SAX(简单API for XML)创建XML文档。 以下是一个简化的自定义实现过程: 1. 读取CSV文件:使用`BufferedReader`逐行读取文件,将每行...

    java 读取Ftp指定位置的文件解析并入库

    例如,CSV文件通常使用逗号分隔值,可以使用`BufferedReader`配合正则表达式或`CSVReader`类(如Apache Commons CSV库)来解析;如果是XML文件,可能需要用到`DocumentBuilderFactory`和`DocumentBuilder`来构建DOM...

    javacsv-2.1.jar

    在Java中,处理CSV文件通常需要手动分割字符串或使用正则表达式,而JavaCSV库提供了一个更高效、更便捷的方法。该库的核心类包括`CSVReader`和`CSVWriter`,它们分别用于读取和写入CSV数据。 `CSVReader`类允许...

    暑假培训学习笔记之 java字符串拆分

    字符串拆分在实际开发中非常常见,比如日志分析、CSV文件解析、网页抓取等领域。通过灵活运用正则表达式,我们可以高效地处理各种格式的文本数据。 通过深入理解正则表达式和`split()`方法,开发者能够更好地处理...

    java 读取csv文件

    例如,使用正则表达式去除换行,将公式转换为文本,或者在解析数字时统一格式。此外,确保所有数据在写入CSV时已正确处理,可以减少后续导入Excel时的困扰。 总之,Java中读取CSV文件可以通过多种方式实现,选择...

    PersianStemmer:使用正则表达式的新的基于规则的波斯词干分析器

    **波斯词干分析器...综上所述,"PersianStemmer"是一个使用正则表达式和Pascal语言实现的波斯语词干分析器,它在信息检索和其他NLP任务中扮演着核心角色,通过规则化的词干提取,提高了文本处理的效率和准确性。

    2023年最完整区号/国家/手机号正则数据库

    压缩包中的文件名为“2022年最完整区号-国家-手机号正则数据库”可能是个CSV、JSON或其他格式的数据文件,包含上述字段信息。开发者在使用时需要解析这个文件,并将数据加载到程序中,然后根据需求编写对应的正则...

    commons-net-3.3.jar、jakarta-oro-2.0.8.jar、javacsv.jar

    Jakarta ORO(ORegexp和OText)是一个正则表达式库,它为Java提供了Perl风格的正则表达式匹配和替换功能。虽然"jakarta-oro-2.0.8.jar"不是直接用于FTP连接的库,但在处理FTP服务器返回的数据,比如解析目录列表或...

    java原生爬虫爬取知乎文章

    在不依赖任何第三方库如Jsoup的情况下,我们将利用Java的网络和字符串处理功能,特别是正则表达式来实现数据的解析和提取。 1. **Java网络编程基础** - `java.net`包提供了处理网络连接的基础类,如`...

    java 分割字符串

    在Java编程语言中,分割字符串是一...总之,Java的`split()`方法是处理字符串的强大工具,结合正则表达式,能够灵活地处理各种字符串分割需求。在实际开发中,我们需要熟练掌握这一功能,以提高代码的效率和可维护性。

    jemter配置文档

    模板,用 $$ 引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是 $2$,$3$ 等等,表示解析到的第几个值给 title。匹配数字,0 代表随机,-1 代表所有,其余正整数代表将在检查的内容...

    java_cvs_解析

    例如,可以使用正则表达式或XML解析器处理Entries文件,获取文件的状态信息;对于RCS文件,可能需要使用RCS库来解析差异信息。 四、现代替代品 尽管CVS在历史上扮演了重要角色,但它已逐渐被更现代的分布式版本...

    GeoLite2-Country-CSV_20200707.7z

    常见的方法是使用正则表达式或CSV解析库来处理数据。例如,在Python中,你可以使用`csv`模块来读取和处理CSV文件。 在实际应用中,IP定位功能可以帮助网站和应用实现以下功能: 1. **内容本地化**:根据用户的位置...

    String.split()方法使用总结

    这个方法为处理文本数据提供了极大的灵活性,尤其在解析CSV文件、配置文件或者任何格式化的文本数据时显得尤为重要。 ### 标题解读:“String.split()方法使用总结” 标题明确指出本文将围绕`String.split()`方法...

    日志文件解析code

    在实际应用中,一个完整的日志解析流程可能包括读取压缩文件、解压、分割日志条目、使用正则表达式或解析库提取信息、存储到数据库或分析平台,最后进行可视化和分析。对于4545这个文件名,可能是日志文件的编号或...

    通用论坛正文提取程序

    最后,为了便于后续的分析和利用,抓取到的正文数据可能被存储在数据库中,如MySQL、MongoDB等,或者是文件系统中,如CSV或JSON格式的文件。 总的来说,【通用论坛正文提取程序】是一个涉及网络爬虫技术、HTML解析...

    [uibot]rpa初级开发指南教程之数据处理.docx

    1. 文件存储:文件存储是将数据存储在文件中的方式,文件存储方法包括文本文件存储、Excel文件存储、CSV文件存储等。 2. 数据库存储:数据库存储是将数据存储在数据库中的方式,数据库存储方法包括关系数据库存储、...

Global site tag (gtag.js) - Google Analytics