C# 如何将字符串的最后两部分用,

C# 如何将字符串的最后两部分用,,c#,string,C#,String,我在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 我想得到两个字符串,一个带日期,另一个带所有字符串 所以输出应该是这样的: interesti

我在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
我想得到两个字符串,一个带日期,另一个带所有字符串

所以输出应该是这样的:

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

感谢您的任何提示。

好的,我知道有比这更好的方法(比如使用正则表达式),但这里有一个快速而肮脏的方法:

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();

正则表达式可以帮助您:

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);

您可以使用正则表达式,例如:

.*,(.*,\s*\d+)$
这将为以下对象创建匹配组:

June 19, 2011
它将匹配任何字符,后跟逗号、数字和字符串结尾


什么是“废话”?你有多少个“,”可以是任何字符串,比如“易于阅读、经验丰富、立即实用”,甚至一个单词。它们的数量未知日期将始终有一个逗号?那么,可以安全地假设结尾的第二个逗号是分隔符吗?是的,它是那样的格式always@MT467您需要清楚地标识格式以及分隔符是什么。比如“2012年5月8日、6月9日、4月12日、2013年”这样的话有效吗?我是唯一一个看到原始帖子中“等等,等等,2012年5月8日等等”的人吗?如果是这样,就不能假设format.Refresh是这样。我更新了他的帖子。这是两行文字。太好了!就像一个符咒,Tnx不适用于这个字符串,例如“一个真正可靠和可操作的客户服务指南,2012年5月29日”,Tnx无论如何