首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析QIF文件- .NET移植到Java

解析QIF文件- .NET移植到Java
EN

Stack Overflow用户
提问于 2012-12-27 05:18:33
回答 1查看 445关注 0票数 1

我有使用.NET解析.qif文件的代码,我正在尝试将这段代码移植到Java,但是在执行部分解析的正则表达式时遇到了问题。以下是文件开头的示例:

代码语言:javascript
复制
!Type:Tag
NAdam
DSon
^
NAllison
^
NAmber
DSabrina's Sister
^
NAnthony
^

在.NET中,我可以使用以下代码开始解析:

代码语言:javascript
复制
// Read the entire file
string input = reader.ReadToEnd();

// Split the file by header types
string[] transactionTypes = Regex.Split(input, @"^(!.*)$", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);

当我调试.NET解析器时,我看到了以下内容:

代码语言:javascript
复制
transactionTypes[0] = ""
transactionTypes[1] = "!Type:Tag\r"
transactionTypes[2] = "\nNAdam\r\nDSon\r\n^\r\nNAllison\r\n^NAmber\r\nDSabrina's Sister\r\nNAnthony\r\n^

在Java语言中,它似乎总是跳过!Type:Tag行,所以我不知道要解析的类型。我在Java中尝试了不同版本的正则表达式,包括:

代码语言:javascript
复制
String[] transactionTypes = dataToParse.split("!.*");
String[] transactionTypes = dataToParse.split("\\s*^(!.*)\\s*");
String[] transactionTypes = dataToParse.split("\\s*(?m)^(!.*)$\\s*");

当我说它跳过了!Type:Tag行时,我在调试时看到了以下内容:

代码语言:javascript
复制
transactionTypes[0] = ""
transactionTypes[1] = "\nNAdam\r\nDSon\r\n^\r\nNAllison\r\n^NAmber\r\nDSabrina's Sister\r\nNAnthony\r\n^

如有任何帮助,我们不胜感激!提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2013-10-12 12:20:51

您确定这需要使用正则表达式吗?从我收集的关于.qif格式的信息来看,它看起来更像是为逐行阅读而设计的。读一行,如果它以"!“开头。这是一个标题行,然后下面的行是一个对象,由"^“组成的行是对象之间的分隔符,等等。在这个SO线程中,有很多逐行文件读取示例:

How to read a large text file line by line using Java?

http://en.wikipedia.org/wiki/Quicken_Interchange_Format

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14046384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档