java - 使用java解析文本文件,每行提取多个值

标签 java arrays parsing

我不会撒谎,我真的不擅长制作正则表达式。我目前正在尝试解析一个给我带来很多问题的文本文件。目标是提取各自“标签/标题”之间的数据。有问题的文件是一个 .qbo 文件,其布局如下个人信息替换为“DATA”:我关心检索的部分位于“STMTTRM”和“/STMTTRM”标记之间,其余部分则为我不打算放入我的数据库,但我认为这会帮助其他人查看我正在使用的文件内容。对于此次更新之前的任何困惑,我深表歉意。

FXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

<OFX>
<SIGNONMSGSRSV1><SONRS>
    <STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS>
    <DTSERVER>20190917133617.000[-4:EDT]</DTSERVER>
    <LANGUAGE>ENG</LANGUAGE>
    <FI>
        <ORG>DATA</ORG>
        <FID>DATA</FID>
    </FI>
    <INTU.BID>DATA</INTU.BID>
    <INTU.USERID>DATA</INTU.USERID>
</SONRS></SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
    <TRNUID>0</TRNUID>
    <STATUS><CODE>0</CODE><SEVERITY>INFO</SEVERITY></STATUS>
    <STMTRS>
        <CURDEF>USD</CURDEF>
        <BANKACCTFROM>
            <BANKID>DATA</BANKID>
            <ACCTID>DATA</ACCTID>
            <ACCTTYPE>CHECKING</ACCTTYPE>
            <NICKNAME>FREEDOM CHECKING</NICKNAME>
        </BANKACCTFROM>
        <BANKTRANLIST>
            <DTSTART>20190717</DTSTART><DTEND>20190917</DTEND>
            <STMTTRN><TRNTYPE>POS</TRNTYPE><DTPOSTED>20190717071500</DTPOSTED><TRNAMT>-5.81</TRNAMT><FITID>3893120190717WO</FITID><NAME>DATA</NAME><MEMO>POS Withdrawal</MEMO></STMTTRN>
            <STMTTRN><TRNTYPE>DIRECTDEBIT</TRNTYPE><DTPOSTED>20190717085000</DTPOSTED><TRNAMT>-728.11</TRNAMT><FITID>4649920190717WE</FITID><NAME>CHASE CREDIT CRD</NAME><MEMO>DATA</MEMO></STMTTRN>
            <STMTTRN><TRNTYPE>ATM</TRNTYPE><DTPOSTED>20190717160900</DTPOSTED><TRNAMT>-201.99</TRNAMT><FITID>6674020190717WA</FITID><NAME>DATA</NAME><MEMO>ATM Withdrawal</MEMO></STMTTRN>
        </BANKTRANLIST>
        <LEDGERBAL><BALAMT>2024.16</BALAMT><DTASOF>20190917133617.000[-4:EDT]</DTASOF></LEDGERBAL>
        <AVAILBAL><BALAMT>2020.66</BALAMT><DTASOF>20190917133617.000[-4:EDT]</DTASOF></AVAILBAL>
    </STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>

我希望能够以如下所示或行为类似的数据结束,以便可以轻松地将每行数据添加到数据库中: Example Parse

最佳答案

正如 David 已经回答的那样,使用 Java 解析 POS 输出 XML 是很好的。如果您对正则表达式更感兴趣以获取所有信息,您可以使用此正则表达式。

<[^>]+>|\\n+

您可以在以下站点进行测试。

https://rubular.com/ https://www.regextester.com/

关于java - 使用java解析文本文件,每行提取多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58861976/

相关文章:

java - H2 数据库未知支持 REF_CURSOR 参数

arrays - swift 2.2 : cannot convert value of type '[B]' to specified type '[A]'

java - 如何在 Java 中处理和解析包含混合内容的文本文件

java - 堆栈应该由数组还是链表java组成?

java - 更新语句占位符的 JDBC 限制失败的解决方法

java - 使用 Apache Digester 从 xml 中读取数据

.net - JSON.NET : serializing/deserializing arrays

arrays - 如何覆盖 ansibles 数组变量的子集?

java - 使用 Java 直接从标准 RFC 邮件格式的文件系统读取/解析电子邮件/邮件

java - 如何使用字符串标记器和缓冲区。