我需要用连字符将字符串分解成单词。例如:如何编写这个Java正则表达式?
“WorkInProgress”转换为“工作进行中”
“NotComplete”转换为“NotComplete”
大多数情况下,有一个词的资本开始,以小写。
但是有一个例外,“CIInProgress”应该转换为“CI-In-Progress”。
我写的代码如下,任何小写或“CI”的模式,后跟一个大写,都会在中间加上“ - ”。但它仍然不能用于“CIInProgress”。任何人都可以告诉我如何改正它?
String str;
String pattern = "([a-z|CI]+)([A-Z])";
str= str.replaceAll(pattern, "$1\\-$2");
你必须明白,一个字符类是只有字符的集合,而不是字符串的集合。 '[A | BC]'表示“A”或“|”或“B”或“C”,与“[B | CA]”或“[| CBA]”相同' – 2014-08-28 01:37:21