gpt4 book ai didi

java - 使用 String.split 时转义逗号

转载 作者:行者123 更新时间:2023-12-01 18:37:38 25 4
gpt4 key购买 nike

我正在尝试执行一些 super 简单的日志文件解析,因此我使用 String.split 方法,如下所示:

String [] parts = input.split(",");

并且非常适合以下输入:

a,b,c

或者

type=simple, output=Hello, repeat=true 

只是想说点什么。

如何转义逗号,使其与中间逗号不匹配?

例如,如果我想在其中一个部分中包含逗号:

type=simple, output=Hello, world, repeate=true

我在想:

type=simple, output=Hello\, world, repeate=true

但我不知道如何创建分割以避免匹配逗号。

我已经尝试过:

String [] parts = input.split("[^\,],");

但是,好吧,不起作用。

最佳答案

您可以使用 negative look behind 来解决它.

String[] parts = str.split("(?<!\\\\), ");

基本上,它表示,在每个前面没有反斜杠的 ", " 上进行分割

String str = "type=simple, output=Hello\\, world, repeate=true";
String[] parts = str.split("(?<!\\\\), ");
for (String s : parts)
System.out.println(s);

输出:

type=simple
output=Hello\, world
repeate=true

( ideone.com link )

<小时/>

如果您碰巧遇到了非转义逗号分隔值,您可以执行以下(类似)黑客操作:

String[] parts = str.split(", (?=\\w+=)");

其中表示每个 ", " 上的 split,后跟一些单词字符和 =

( ideone.com link )

关于java - 使用 String.split 时转义逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com