用于拆分驼峰大小写或标题大小写的正则表达式(高级)
2022-08-31 11:18:15
我找到了一个很棒的正则表达式来提取驼峰大小写或标题大小写表达式的部分。
(?<!^)(?=[A-Z])
它按预期工作:
- 值 -> 值
- 骆驼价值 -> 骆驼 / 价值
- 标题值 -> 标题/值
例如,使用 Java:
String s = "loremIpsum";
words = s.split("(?<!^)(?=[A-Z])");
//words equals words = new String[]{"lorem","Ipsum"}
我的问题是它在某些情况下不起作用:
- 案例 1:值 -> V / A / L / U / E
- 案例2:日食RCPExt->日食/R/C/P/Ext
在我看来,结果应该是:
- 案例 1:值
- 案例2:日食/RCP/分机
换句话说,给定 n 个大写字符:
- 如果 n 个字符后跟小写字符,则组应为:(n-1 个字符)/(第 n 个字符 + 低字符)
- 如果 n 个字符位于末尾,则组应为:(n 个字符)。
关于如何改进这个正则表达式的任何想法?