获取扫描程序包括但忽略引用的文本?

时间:2012-04-15 16:47:19

标签: java regex quotes java.util.scanner

基本上我的问题是这个,我需要解析,是分隔符的文本,但" "引号中的任何内容都不应该检查分隔符。这是Scanner.skip方法的用途吗?我会亲自检查,但我不明白如何在java中编写正则表达式模式,其中令牌是两个" "之间的东西。我还想在正确的令牌中包含任何带引号的文本,该令牌由有效的,分隔。

1 个答案:

答案 0 :(得分:2)

我刚刚研究过这个问题,并没有找到足够快的解决方案。

因此,我将一个简单的自定义字符串拆分器(忽略引号之间的分隔符)合并到我正在处理的开源项目中:

QuoteAwareStringSplitter.java

例如:

public static void main( String[] args ) throws IOException
{
    String s = "ads,asdas,das,das, \"ahda,asd,as,d,a\", adsa";
    String[] tokens = QuoteAwareStringSplitter.splitLine( s );
    for ( String token : tokens )
    {
        System.out.println( token );
    }
}

打印:

ads
asdas
das
das
ahda,asd,as,d,a
 adsa