Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅当同时统计了负前瞻和负前瞻时才拆分字符串_Java_Regex - Fatal编程技术网

Java 仅当同时统计了负前瞻和负前瞻时才拆分字符串

Java 仅当同时统计了负前瞻和负前瞻时才拆分字符串,java,regex,Java,Regex,您好,我来到了作者想要转换字符串的地方: exampleString = "2 Marine Cargo 14,642 10,528 Denver Factory North 16,016 more text 8,609 argA 2,106 argB" 进入一个数组/列表,该数组/列表与以下内容类似: String[] resultArray = {"2", "Marine Cargo", "14,642", "10,528", "Denver Factory Nor

您好,我来到了作者想要转换字符串的地方:

exampleString =  "2 Marine Cargo       14,642 10,528  Denver Factory North     16,016 more text 8,609 argA 2,106 argB"
进入一个数组/列表,该数组/列表与以下内容类似:

String[] resultArray = {"2", "Marine Cargo", "14,642", "10,528", "Denver Factory North", "16,016",
                "more text", "8,609", "argA", "2,106", "argB"};
因此,数字部分(带或不带逗号)被视为元素
纯阿尔法序列(被无、一个或多个空间分割)被视为一个元素

这可以通过匹配组来实现
或者在字符串的前一部分和下一部分都不是alpha序列的空间上进行拆分。我很好奇后者是否可能。 我认为部分工作应该以消极的前瞻性来完成:

\s+(?![A-Za-z]+)
然后以消极的眼光离开

(?<![a-zA-Z])\s+
(?
我希望以这样一种方式组合这两个语句,即如果空格序列前后的部分都是alpha,那么它只会匹配,这样您就可以将多个单词链接在一起,而不会在它们之间拆分。我在这个主题上找到了另一个,但我无法针对这个特殊情况对其进行反向工程。这是p吗可能吗?

您可以使用

String[] results = exampleString.split("(?<=\\d)\\s+(?=[a-zA-Z])|(?<=[a-zA-Z])\\s+(?=\\d)|(?<=\\d)\\s+(?=\\d)");
输出:

2
Marine Cargo
14,642
10,528
Denver Factory North
16,016
more text
8,609
argA
2,106
argB

哇,你很快。谢谢你添加了详细信息和解释。如果我也要拆分14642和10528。最有效的方法就是添加另一个|子句吗?例如:
(?@StephanHogenboom Add
|)(?
2
Marine Cargo
14,642
10,528
Denver Factory North
16,016
more text
8,609
argA
2,106
argB