我有包含驼色大小写文本和数字的字符串,希望将其拆分。
例如,字符串"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)
将找到一个前面有数字但后面没有数字的位置。