我有一个tsv,其中包含由tab标记的文件,但是单个列以“”为界,其中可能包含制表符。 例如
String toBeparsed= "'a1'\t'a2'\t'a3\t'\t'a4'";
所以当我尝试做
时 String [] arr = toBeparsed.split("\\t");
System.out.println(Arrays.asList(arr));
输出
['a1', 'a2', 'a3, ', 'a4']
这不是我所期望的。这应该是
['a1', 'a2', 'a3\t', 'a4' ]
答案 0 :(得分:2)
String regex="(?<=')\\t(?=')";
答案 1 :(得分:0)
你可以这样做..
public static void main (String[] args) throws java.lang.Exception
{
String toBeparsed= "'a1'\t'a2'\t'a3\t'\t'a4'";
String str[] = toBeparsed.split("'");
System.out.println(Arrays.asList(str));
for(String s : str){
if(s.equals("\\t")|| s.trim().isEmpty())
{
continue;
}
System.out.println(s+"...");
}
}
O / P:
[, a1, , a2, , a3 , , a4]
a1...
a2...
a3 ... \\ yes \t is here
a4...
答案 2 :(得分:-2)
请尝试使用+
之后:
String [] arr = toBeparsed.split("\\t+");
System.out.println(Arrays.asList(arr));