1

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

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

例如:

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

3 回答 3

4

此正则表达式将分组:

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

那么你只需要输出第 1 组,一个空格,第 2 组

于 2013-02-28T16:21:23.383 回答
0
string str = "ABC";
str = Regex.Replace(str, @"([A-Z]{2,})([A-Z])", "$1 $2"); 

Console.WriteLine(str);    // "AB C"
于 2013-02-28T16:24:30.707 回答
0

替代品

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

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

于 2013-02-28T16:26:57.933 回答