使用数字组拆分驼色大小写文本



我有包含驼色大小写文本和数字的字符串,希望将其拆分。

例如,字符串"abcDefGhi345J6"应拆分为

["abc", "Def", "Ghi", "345", "J", "6"]

我最大的努力是

"abcDefGhi345J6".split("(?=\p{Lu})|(?!\p{Lu})(?=\d+)")

这给了我

["abc", "Def", "Ghi", "3", "4", "5", "J", "6"]

PS:双重标记的答案不会给出预期的输出,因为这些答案不是Unicode不可知的。

您可以使用此正则表达式进行拆分:

(?=p{Lu})|(?<!d)(?=d)

RegEx演示

对于Java代码:

String[] arr = string.split("(?=\p{Lu})|(?<!\d)(?=\d)");

(?<!d)(?=d)将找到一个前面有数字但后面没有数字的位置。

最新更新