正则表达式,用于在连续大写字母序列中的最后一个之前添加空格

时间:2013-02-28 16:18:14

标签: c# regex

在花了太多时间试图弄清楚之后已经放弃了这一点,并且认为我会看看是否有其他人想要去吧!

我需要一个正则表达式,它将在最后一个连续大写字母之前插入一个空格,其中有两个以上连续的大写字母。

E.g的:

A = A
AB = AB
ABC = AB C
ABCD = ABC D
abCdefGHijkLMNop = abCdefGHijkLM Nop

3 个答案:

答案 0 :(得分:4)

此正则表达式将分组:

([A-Z]{2,})([A-Z]+)

然后你只需要输出组1,一个空格,组2

答案 1 :(得分:0)

string str = "ABC";
str = Regex.Replace(str, @"([A-Z]{2,})([A-Z])", "$1 $2"); 

Console.WriteLine(str);    // "AB C"

答案 2 :(得分:0)

替换

string output=Regex.Replace(input, @"(?<=[A-Z]{2})(?=[A-Z][^A-Z]|[A-Z]$)", " ");

“替换”带有空格的链中最后两个大写字母之间的零长度点,即插入空格。