Java 拆分字母和数字中的字符串

Java 拆分字母和数字中的字符串,java,regex,string,split,Java,Regex,String,Split,有人能帮我学点正则表达式吗。 我想把下面的字符串分成字母和数字 范例 字符串ns01sp0001拆分后应 ns01sp和0001 我试着用下面的正则表达式 String array[] = str.split("[^A-Z0-9]+|(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])"); 但对于小写,它是返回 [NS, 01, SP, 0001] [, 01, 0001] // not able to get alphabet. 有什么方法可以像这

有人能帮我学点正则表达式吗。 我想把下面的字符串分成字母和数字

范例 字符串
ns01sp0001
拆分后应

ns01sp
0001

我试着用下面的正则表达式

String array[] = str.split("[^A-Z0-9]+|(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])");
但对于小写,它是返回

[NS, 01, SP, 0001]
[, 01, 0001] // not able to get alphabet.
有什么方法可以像这样获得输出吗

[NS01SP,0001] // if input = NS01SP0001
[ns01sp,0001] //if input = ns01sp0001.
您可以使用:

String tok[] = str.split("(?<=\\D)(?=\\d+\\b)");

String tok[]=str.split((?总是有两个元素吗?如果没有,根据什么规则
01
成为
ns01sp
的一部分而不是它自己的元素?您的字符串有固定长度吗?或者eyerytime 4个数字在末尾吗?根据问题分析,它可能是动态的添加
(?)
用于大写和小写。
字符串数组[]=str.split((?i)[^A-Z0-9]+|(?@Zorian)不是固定长度。它可以是任何长度。常规格式。