如何在某个特定数字之后在c#中的字符串中插入换行符?

时间:2012-01-21 15:54:53

标签: c# asp.net string algorithm

我正在编写一些代码,我必须以特定格式输入文本。 即。

2
10 5 kdsfj ejkd kjdf
7 8 sdkj dsjklf ckjsd dksj

等等

但我必须输入一个文本文件的数据,整个字符串为

2 10 5 kdsfj ejkd kjdf7 8 sdkj dsjklf ckjsd dksj6 12 kjd ekjr fkjdr fdkj

但我想支持上面给出的格式文本。 大胆的字母是可以分享的。 我想要一个程序,以便它可以在字符或空格后跟数字添加换行符?

我该怎么做?

3 个答案:

答案 0 :(得分:3)

答案是某种形式的正则表达式

Regex.Replace(inputString, @"([A-Za-z])(\d)", "$1" + Environment.NewLine + "$2");

输入是文件中的源行,并且模式符合您的特定条件。通过以上替换,您最终得到:

2 10 5 kdsfj ejkd kjdf
7 8 sdkj dsjklf ckjsd dksj
6 12 kjd ekjr fkjdr fdkj

您的其他评论澄清了加入前一个角色时的换行符;虽然我仍然不确定为什么2会自行结束?

答案 1 :(得分:0)

for (int i = 0; i < s.Length - 1; ++i)
  if (!s[i].IsDigit() && s[i+1].IsDigit())
    s.Insert(i+1, Environment.NewLine);

答案 2 :(得分:0)

Regex.Replace(inputString, @"([A-Za-z])(\d)", "$1" + Environment.NewLine + "$2");

应该这样做,它会匹配一系列字符,然后是一个数字。在数字前面插入一个新行。

对于那个讨厌的情况2,你必须使用先行或其他东西。