Java RegEx for Tab分隔文件,列中包含选项卡

时间:2014-05-12 05:21:52

标签: java regex string

我有一个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' ]

3 个答案:

答案 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));