gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:56:27 24 4
gpt4 key购买 nike

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

!Type:Tag
NAdam
DSon
^
NAllison
^
NAmber
DSabrina's Sister
^
NAnthony
^

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

// 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 解析器时,我看到以下内容:

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 中正则表达式的各种版本,包括以下版本:

String[] transactionTypes = dataToParse.split("!.*");
String[] transactionTypes = dataToParse.split("\\s*^(!.*)\\s*");
String[] transactionTypes = dataToParse.split("\\s*(?m)^(!.*)$\\s*");

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

transactionTypes[0] = ""
transactionTypes[1] = "\nNAdam\r\nDSon\r\n^\r\nNAllison\r\n^NAmber\r\nDSabrina's Sister\r\nNAnthony\r\n^

感谢任何帮助!预先感谢您!

最佳答案

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

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

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

关于java - 解析 QIF 文件 - .NET 移植到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com