我实际上有一个包含大量行(几乎1M)的文件,如下所示。
736206 " 8214152 " ""
736207 "7357074" ""
736202 "7904815" "TEST"
736203 "8117263" "TEST"
736204 "8117263" "TEST"
736205 "9074391" ""
736221 "8308161" ""
736214 "7707114" ""
736229 "8215534" ""
736242 "9572006" ""
736255 "8418162" ""
736222 "7347835" ""
736230 "9044748" "TROLL,A" 1999-01-01 00:00:00
我需要放入String []或列出每个元素,不要有空格,空格,制表符等......如:
736230
9044748
TROLL,A
1999-01-01 00:00:00
我不像正则表达式,但我尝试了一些......这实际上是一个史诗般的失败。
"\"([^\"]*)\""
---
"\"([a-z\\s]+)\""
---
^[^\"]*\"|\"[^\"]*$
---
似乎没什么用。
答案 0 :(得分:0)
答案 1 :(得分:-1)
根据您的输入数据:
String data = "736206 \" 8214152 \" \"\" \n"
+ "736207 \"7357074\" \"\" \n"
+ "736202 \"7904815\" \"TEST\" \n"
+ "736203 \"8117263\" \"TEST\" \n"
+ "736204 \"8117263\" \"TEST\" \n"
+ "736205 \"9074391\" \"\" \n"
+ "736221 \"8308161\" \"\" \n"
+ "736214 \"7707114\" \"\" \n"
+ "736229 \"8215534\" \"\" \n"
+ "736242 \"9572006\" \"\" \n"
+ "736255 \"8418162\" \"\" \n"
+ "736222 \"7347835\" \"\" \n"
+ "736230 \"9044748\" \"TROLL,A\" 1999-01-01 00:00:00";
让我们删除data
中的所有双引号,如下所示:
data = data.replace("\"", "");
如果您将数据打印到控制台,数据将为:
736206 8214152
736207 7357074
736202 7904815 TEST
736203 8117263 TEST
736204 8117263 TEST
736205 9074391
736221 8308161
736214 7707114
736229 8215534
736242 9572006
736255 8418162
736222 7347835
736230 9044748 TROLL,A 1999-01-01 00:00:00
现在您可以看到,您尝试隔离的每条信息都被两个或多个空格分隔开。我们可以使用这个cue和regex将它转换为一个字符串数组,如下所示:
String[] split = data.split("(\\s){2,}");
(\\s){2,}
搜索data
以查找有两个或更多连续空格字符并将其拆分的实例。
最终输出:
736206
8214152
736207
7357074
736202
7904815
TEST
736203
8117263
TEST
736204
8117263
TEST
736205
9074391
736221
8308161
736214
7707114
736229
8215534
736242
9572006
736255
8418162
736222
7347835
736230
9044748
TROLL,A
1999-01-01 00:00:00
通过这两个基本操作,您将能够解决问题,而不是使用复杂的正则表达式。