2012-01-21 47 views
-2

我正在編寫一些代碼,我只能以特定的格式輸入文本。 即如何在c#中的字符串中插入換行符後一些特定的數字?

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

的情況下爲什麼你插入2和10之間的換行,而不是10和5之間,也沒有7和8之間?您能否更具體地瞭解您的要求? – Douglas

+0

@Douglas:先生,我想在字符串之間添加換行符,例如kjdf7和dksj6,如上所示。這裏的數字和字符連接,我需要在它們之間插入一個換行符 – ItsLockedOut

+2

仍然不清楚。 – Matthias

回答

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會在自己的路線上結束?

+0

它不適用於我的情況。我用它作爲var ins = textBox3.Text; string str = Regex.Replace(ins,@「([A-Za-z])(\ d)」,「$ 1」+ Environment.NewLine +「$ 2」); textBox2.Text = str; – ItsLockedOut

+0

@ItsLockedOut什麼不起作用? –

+0

我不清楚爲什麼'2'在您的示例字符串中有自己的行,所以目前沒有處理。給定問題中的示例輸入字符串,您應該獲得與上面捕獲的結果相同的結果。我在一個示例C#應用程序中測試以確認結果。也許提供更多關於你所看到的結果的細節? –

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

嘿,我想使用它的字符串STR = textBox3.Text;然後在另一個文本框中顯示格式化的字符串。我怎樣才能做到這一點 ? – ItsLockedOut

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

應該做的伎倆,它會匹配一系列字符,然後一個數字。在數字前插入一個新行。

你將不得不使用查找aheads或東西的討厭的2

+0

你測試了你的正則表達式嗎?您的替換根據模式不正確。 –

+0

用不同的工具重新檢查。的確,這是不正確的。更新。 –

+0

@ZheheerAhmed是這樣嗎?然後請提供一個反例(除了已知的領先2)... –

相關問題