寻找正则表达式以大写字母为基础拆分字符串

时间:2011-09-22 12:40:57

标签: c# regex

寻找关注sceaio的正则表达式解决方案:

我有字符串,我必须在大写的基础上拆分,但连续的大写部分不应该拆分。

例如:如果输入是

DisclosureOfComparativeInformation

O / p应该是

Disclosure Of Comparative Information

但连续的大写不应该分裂。

GAAP不应该导致G A A P

如何找到特定模式并插入空格?

感谢名单

7 个答案:

答案 0 :(得分:8)

尝试 -

var subjectString = "DisclosureOfComparativeInformation";
var resultString = Regex.Replace(subjectString, "([a-z])([A-Z])", "$1 $2");

答案 1 :(得分:1)

试试这个正则表达式:

[a-z](?=[A-Z])

通过此次调用替换:

regex.Replace(toMatch, "$& ")

有关特殊替换符号“$&”的详细信息,请参阅http://msdn.microsoft.com/en-us/library/ewy2t5e0.aspx#EntireMatch

答案 2 :(得分:1)

((?<=[a-z])[A-Z]|[A-Z](?=[a-z]))

替换为

" $1"

在第二步中你必须修剪弦乐。

查看此链接也......

Regular expression, split string by capital letter but ignore TLA

答案 3 :(得分:0)

使用正则表达式解决方案来查找某些内容 not true的字符串往往变得无法识别。我建议你在循环中浏览你的字符串并相应地拆分它,而不使用正则表达式。

答案 4 :(得分:0)

在Perl中这应该有效:

str =~ s/([A-Z][a-z])/ \1/g;

两个字符集周围的括号会在以后保存“\ 1”(第一个)的匹配。

答案 5 :(得分:0)

[A-Z]{1}[a-z]+

如果替换为match + space

将拆分如下

DisclosureOfComparativeInformation -> Disclosure Of Comparative Information

GAPS -> GAPS

SOmething -> SOmething这可能是不受欢迎的

alllower -> alllower

答案 6 :(得分:0)

拆分和加入:

string.Join(" ", Regex.Split("DisclosureOfComparativeInformation", @"([A-Z][a-z]*)"))