2012-09-25 197 views
5

我需要找到字符串值的特定部分,如下所示,我需要將「會議ID」更改爲特定的數字。字符串查找和替換方法

這個數字來自多個號碼的下拉列表,所以我不能簡單地使用找到&更換。因爲在用戶開心之前,文本可能會變成多個數字之一。

的字符串永遠不會改變的「0783」的一部分,「會議ID」後面總是跟着一個「」。

所以我需要去「0783,插入文字」,然後插入在指數Changed事件的新號碼。

下面是一個例子: -

商業邀請,開始時間,男問題,518-06-XXX,9999 999 0783 ,會議ID,XXX ??

定位此字符串並每次替換測試的最佳方法是什麼?

我希望這是有道理的傢伙?

回答

3

好了,所以有這樣的幾種方法,然而,這似乎是你能控制的,所以我要在這裏說的是你想要做什麼的字符串。

var myString = string.Format("Business Invitation, start time, M Problem, 518-06-xxx, 9999 999 0783, {0}, xxx ??", yourMeetingId); 

如果你沒有控制它,然後你將必須更加聰明一點:

var startingIndex = myString.IndexOf("0783, "); 
var endingIndex = myString.IndexOf(",", startingIndex + 6); 
var pattern = myString.Substring(startingIndex + 6, endingIndex - (startingIndex + 6)); 
myString = myString.Replace(pattern, yourMeetingId); 
+0

這看起來是正確的想法,我會嘗試這個當我有機會!謝謝。 – Derek

+0

@Derek,非常感謝! –

+0

它完美的工作,謝謝朋友。我從來沒有打過這個。 – Derek

0

您可以Regex.Replace方法嘗試

string pattern = @"\d{3},"; 
    Regex regex = new Regex(pattern); 

    var inputStr = "518-06-xxx, 9999 999 0783"; 
    var replace = "..." 
    var outputStr = regex.Replace(inputStr, replace); 
1

可以儲存您的「當前」 Meeting ID在一個變量,隨着用戶的行爲進行更改,然後使用相同的全局變量,當您需要的字符串。

這樣,您不必擔心字符串內部的內容不需要混淆數組索引。你也可以安全地使用魔法數字/字符串,這些數字/字符串在將來的某個時刻一定會爆炸在你的臉上。

0

使用Regex.Split通過令牌「0783」,然後在數組中的第二個字符串按標記返回分隔「,」字符串數組中的第一個元素將是插入新文本的位置。然後使用string.Join將第一個分割與「0783」連接,並將第二個分割與「,」連接。

 string temp = "Business Invitation, start time, M Problem, 518-06-xxx, 9999 999 0783, Meeting ID, xxx ??"; 
     string newID = "1234"; 
     string[] firstSplits = Regex.Split(temp, "0783,"); 
     string[] secondSplits = Regex.Split(firstSplits[1], ","); 
     secondSplits[0] = newID; 
     string @join = string.Join(",", secondSplits); 
     firstSplits[1] = @join; 

     string newString = string.Join("0783,", firstSplits);