gpt4 book ai didi

java - 在未转义的空间拆分

转载 作者:行者123 更新时间:2023-12-01 08:07:51 26 4
gpt4 key购买 nike

我有以下形式的字符串:

/path/ /path\ with\ space/ /another/

我需要拆分它,所以我最终得到一个包含以下内容的数组:

[ /path/, /path with space/, /another/ ]

是否有一个简单的正则表达式可以解决这个问题?以前我使用的是\s+ 但显然它在这里不起作用。

最佳答案

使用 negative lookbehind .

String s = "/path/ /path\\ with\\ space/ /another/";
String[] parts = s.split("(?<!\\\\)\\s+");

System.out.println(Arrays.toString(parts));
// prints [/path/, /path\ with\ space/, /another/]

请注意,第二个元素仍包含 \,您需要自己将其删除。

for (int i=0; i<parts.length; i++)
{
parts[i] = parts[i].replaceAll("\\\\ ", " ");
}

System.out.println(Arrays.toString(parts));
// prints [/path/, /path with space/, /another/]

是的,那是 四个 \,只是为了匹配字符串中的一个。

关于java - 在未转义的空间拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6413641/

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