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

本文关键字:最后一个 空格 添加 用于 连续 大写字母 正则表达式 | 更新日期: 2023-09-27 18:01:47

在花了太多时间试图弄清楚之后,我放弃了这个,我想看看是否有人想试试!

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

如:

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

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

此regexp将分组:

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

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

替换

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

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

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