1

私は多くの異なる正規表現文字列を使用しましたが、それらはすべて同じことを行います。

私の .csv の 1 行は次のようになります。

「999」、「場所」、「代替運賃キー」、「テーブルID」、「住所」、「2号線」、「都市」、「都道府県」、19111、、、H、、、など.... ..(139 列あります。

ご覧のとおり、一部のエントリは引用符で区切られていますが、区切られていないエントリもあります。また、引用符の有無。すべてのエントリはコンマで区切られています。

私が使用した正規表現文字列の 2 つの例を次に示します。

String regex = "(?:(?<=\")([^\"]*)(?=\"))|(?<=,|^)([^,]*)(?=,|$)"
Object[] tokens = strLine.split(regex);
model.addRow(tokens);
jTable1.setModel(model);

String regex = ",(?=([^\"]*\"[^\"]*\")*[^\"]*$)"
Object[] tokens = strLine.split(regex);
model.addRow(tokens);
jTable1.setModel(model);

これらはどちらも同じことを行います。

以下の |(s) のふりをするのは、私の jTable の行です。

"999"|"場所"|"Alt. fare key"|"テーブル ID"|"住所"|"2 行目"|"都市"|"都道府県"|19111| | | |ひ|

私はそれが次のように出てくることを望みます:

999|場所|Alt. 運賃キー|テーブルID|住所|2行目|都市|都道府県|19111| | | |ひ| 等.....

不要な括弧を削除するために、正規表現に他に何が必要ですか?

助けてくれてありがとう。JB

4

1 に答える 1

0

しかし、埋め込まれたコンマを処理しますか?OpenCSVライブラリはこれを実行します(opencsvドキュメントからコピー):

CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
String [] nextLine;
while ((nextLine = reader.readNext()) != null) {
    // nextLine[] is an array of values from the line
    System.out.println(nextLine[0] + nextLine[1] + "etc...");
}
于 2012-10-17T02:12:33.757 に答える