2013-05-07 30 views
-1

我在C#中一些字符串這樣的:如何獲得通過分隔的字符串的最後兩個部分,

interesting, fun, May 08, 2012 
this is very interesting text, June 19, 2011 

我想獲得兩個字符串,一個帶有日期和其他所有字符串

所以輸出應該是這樣的:

string1=interesting, fun 
string2=May 08, 2012 

string1=this is very interesting text 
string2=June 19, 2011 

感謝任何提示。

+0

究竟什麼是 「嗒嗒」?你有多少','? – nmat 2013-05-07 23:54:04

+0

可以是任何字符串,如「易讀,沉浸於經驗,立即實用」或甚至一個字。它們的數量未知 – MT467 2013-05-07 23:55:35

+0

日期將始終有一個逗號?那麼可以肯定的是,從最後的第二個逗號是你的分隔符? – 2013-05-07 23:56:50

回答

1

好吧,我知道有完全比這更好的方式是(如用正則表達式),但這裏有一個快速和骯髒的方式:

string str1 = "blah, blah, May 08, 2012"; 
string str2 = "blah blah blah, June 19, 2011"; 

int splitter = str1.Substring(0, str1.LastIndexOf(',')).LastIndexOf(','); 

string newStr1 = str1.Substring(0, splitter); 
string newStr2 = str1.Substring(splitter + 2, str1.Length - (splitter + 2)); 

Console.WriteLine(newStr1); 
Console.WriteLine(newStr2); 

Console.ReadKey(); 
+0

我是唯一一個在這裏看到:「等等,等等,08年5月,等等,2012」在原來的職位?如果是這樣,你就不能採用這種格式。 – nmat 2013-05-08 00:02:46

+0

刷新。我更新了他的帖子。這是兩行文字。 – 2013-05-08 00:04:36

+0

太棒了! Tnx – MT467 2013-05-08 00:08:56

0
bool foundDateComma = false; 
string beginning, date; 
for (int i = s.Length - 1; i >= 0; i--) 
    if (s[i] == ',') 
     if (!foundDateComma) 
      foundDateComma = true; 
     else 
     { 
      beginning = s.Substring(0, i); 
      date = s.Substring(i + 1); 
      break; 
     } 
0

正則表達式可以幫助你:

Match match = Regex.Match(yourstring, @"[January|February|March|April|May|June|July|August|September|October|November|December]\s\d+,\s\d+"); 
string date = match.Groups[1].Value; 
string blah = yourstring.Substring(0, yourstring.IndexOf(date) -1); 
+0

不適用於此字符串,例如「2012年5月29日客戶服務的真實可引用和可操作指南」,Tnx無論如何 – MT467 2013-05-08 00:12:37

0

你可以使用正則表達式,如:

.*,(.*,\s*\d+)$ 

這將創建一個比賽組:

June 19, 2011 

這將匹配後跟一個逗號後面跟一個數字,然後字符串結束的任何字符。

Example

相關問題