2012-02-22 73 views
2

我有所有字符串都有不同的長度。 例如在C中每次在特殊字符之前切割一個字符串

str1 = "This is new job ----First Message----- This is reopened "; 
str2 = "Start Process ----First Message----- Is this process closed? <br/> no ----First Message-----"; 

現在這些字符串應該總是有"----First Message-----"在裏面。 我需要的是修剪或拆分字符串,使得我只能得到第一次出現"----First Message-----"的部分。

所以在str1結果的情況下應該是「這是新的工作」 對於str2應該"Start Process "

如何在C#做什麼?

+0

的可能的複製[獲取子字符串 - 某些字符之前的一切(http://stackoverflow.com/questions/1857513/get-substring-everything-before-certain-char) – 2017-01-14 12:35:49

回答

12
string stringStart = str1.Substring(0, str1.IndexOf("----First Message-----")); 
+0

這將返回你想要的字符串所以如果你想稍後使用它,請確保將它捕獲到變量中,等等。它不會修改str1的內容。 http://msdn.microsoft.com/en-us/library/aka44szs.aspx – 2012-02-22 22:36:30

+0

@JoshP感謝指出,我已經編輯了答案,將其考慮在內。 – phoog 2012-02-22 22:38:01

+0

完美答案。非常感謝。 – user970225 2012-02-22 23:14:12

1
String result = input.Substring(0, input.IndexOf('---FirstMessage-----')); 

實際上,用於教學目的...

private String GetTextUpToFirstMessage(String input){ 
    const string token = "---FirstMessage-----"; 
    return input.Substring(0, input.IndexOf(token)); 
} 
0

這聽起來像是正則表達式工作!!!!

請嘗試以下代碼。不要忘記在頂部包含using System.Text.RegularExpressions;聲明。

Regex regex = new Regex(@"^(.*)----FirstMessage----$"); 
    string myString = regex.Match(str1).Value; 
+0

你可以檢查這個問題http://stackoverflow.com/questions/19131758/how-to-split-a-string-into-an-array-of-strings – Anjali 2013-10-02 15:00:50

+0

現在你有兩個問題.... $在最終將確保您不會與問題中的數據匹配。 – 2017-09-05 21:34:02