我找到了一个出色的RegEx来提取camelCase或TitleCase表达式的一部分.
(?<!^)(?=[A-Z])
Run Code Online (Sandbox Code Playgroud)
它按预期工作:
例如使用Java:
String s = "loremIpsum";
words = s.split("(?<!^)(?=[A-Z])");
//words equals words = new String[]{"lorem","Ipsum"}
Run Code Online (Sandbox Code Playgroud)
我的问题是它在某些情况下不起作用:
在我看来,结果应该是:
换句话说,给定n个大写字符:
关于如何改进这个正则表达式的任何想法?
我试图使用python将camel case转换为空格分隔值.例如:
divLineColor - > div Line Color
这条线成功地做到了:
label = re.sub("([A-Z])"," \g<0>",label)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是simpleBigURL
他们应该这样做:
simpleBigURL - >简单的大URL
我不完全确定如何得到这个结果.救命!
这是我尝试过的一件事:
label = re.sub("([a-z])([A-Z])","\g<0> \g<1>",label)
Run Code Online (Sandbox Code Playgroud)
但这会产生奇怪的结果,如:
divLineColor - > divL vineC eolor
我也在想使用它(?!...)
可以工作,但我没有运气.
我有这个代码通过正则表达式分割CamelCase:
Regex.Replace(input, "(?<=[a-z])([A-Z])", " $1", RegexOptions.Compiled).Trim();
Run Code Online (Sandbox Code Playgroud)
但是,它没有正确拆分: ShowXYZColours
它生产Show XYZColours
而不是Show XYZ Colours
我如何获得所需的结果?