2012-12-20 61 views
-4

我需要寫一個函數,它將在字符串中找到限制[insert - l] some text [/insert]並將每個字中放置一個限制中指定的字符(例如char l) 我認爲我需要查找[insert -l] [/ insert]之間的所有內容都將其拆分爲數組,並將每個單詞中的字符置於隨機位置,但我的知識記錄不足以編寫它。請幫我= \功能插入文本的隨機字符

例子:

Musgrave was [insert - l] selected as a scientist-astronaut [/insert] by NASA in August 1967. 

功能後我得:

Musgrave was sellected als a scilentist-astrlonaut by NASA in August 1967. 
+5

鑑於:'___';;預計:'____'。請填寫空格。 –

+0

請向我們展示示例數據和期望的結果 –

+3

這感覺就像是一個家庭作業問題(這很好),但如果是這樣的話,最好先說一下......這裏的人會想要確保以某種方式回答這將有助於你學習,而不僅僅是給你一些代碼。另外,「在每個單詞中加入一個限制中指定的字符」可能意味着幾件事情。奧斯汀的建議是給出示例輸入/輸出是一個很好的建議。 – JaredReisinger

回答

2

只因爲我對懲罰饞嘴。這是我對你要求的東西的猜測。

var random = new Random(); 
string bigBlockOfText = @"blah blah [insert - l] some text [/insert] blah blah blah [insert - q] different text[/insert]."; 
var reg = new Regex(@"\[insert \- (?<char>.)\](?<text>.+?)\[/insert\]"); 
var matches = reg.Matches(bigBlockOfText); 
for (int i = matches.Count - 1; i >= 0; i--) 
{ 
    var match = matches[i]; 
    bigBlockOfText = bigBlockOfText.Remove(match.Index, match.Length); 
    var replace = match.Groups["text"].Value; 
    var insert = match.Groups["char"].Value; 
    replace = replace.Insert(random.Next(replace.Length), insert); 
    bigBlockOfText = bigBlockOfText.Insert(match.Index, replace); 
} 
+0

不要工作= \我需要在[insert -l] [/ insert]之間插入每個單詞的字符並且這個限制可以在文本中重複 – user1917212

+2

它確實有效。我測試了它。它不會在每個插入中插入多個字符,因爲您的初始請求沒有提到這一點。對不起,你可以繼續休息。 –