Java解析-分隔符也可以是标记的一部分

标签 java parsing delimiter

我有一个要解析的字符串。

      M|N| | |"DANGER| AWESOME"|N|N| | | |

分隔符是竖线 (|) 符号。然而,管道可以是 token 的一部分。在这种情况下,它用双引号引起来。是否有一个现有的库/函数可供我使用,让我指定分隔符或开始/结束分隔符(|”和“|)。 StringTokenizer 不起作用,因为它会对 DANGER| 中的管道进行计数作为分隔符非常棒。我觉得一定有一种解决方案比逐字符检查字符串/创建自定义解析器更简单。

最佳答案

怎么样?

String regex = "\\|(?=([^\"]*\"[^\"]*\")*[^\"]*$)"; 

测试:

public static void main(String[] args) throws Exception {
    String x = "M|N| | |\"DANGER| AWESOME\"|N|N| | | |";
    String regex = "\\|(?=([^\"]*\"[^\"]*\")*[^\"]*$)"; 
    String[] y = x.split(regex);
    for(String s : y) {
        System.out.println(s);
    }
    System.out.println("************* DONE ***********");
}

输出:

M
N


"DANGER| AWESOME"
N
N



************* DONE ***********

关于Java解析-分隔符也可以是标记的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222832/

相关文章:

java - 如何使用 JSF-1.2 创建标签提供程序?

python - 是否有一个 Python 模块可以从 crontab 样式的时间定义中获取下一个运行时?

java - 空指针异常 : Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' on a null object reference

java - 在 jeditorpane 上显示图像(java swing)

php - 我的 joomla 网站出现问题

java - 增加解析的多功能性 - Java

Hive 查询输出分隔符

mysql - MySQL "DELIMITER"关键字无效

c# - 如何拆分分隔符保留在结果末尾的字符串?

java - Intellij Spring 和 Tomcat 部署