我有一个像这样的字符串: “07/04/2017 16:09:03作者:Joe Bloggs)由Joe Bloggs添加07/04/2017 17:03:04)更新了”
我想将字符串拆分为注释列表。上面的字符串示例包含两个单独的注释,我想将其拆分为一个列表。我已经确定每个新评论都以日期开头。所以对于每个日期,id都喜欢拆分字符串。
我尝试使用以下正则表达式模式 '\ d {1,2} \ / \ d {1,2} \ / \ d {4}' 检测日期。
var sqlComments = "07/04/2017 16:09:03 by Joe Bloggs) Added 07/04/2017 17:03:04 by Joe Bloggs) Updated"
var comments = Regex.Split(sqlComments, RegexDateIdentifier);
return comments.Where(c => c != string.Empty).ToList();
但是上面的代码,按照我的意愿分割字符串,但删除了日期。所以我喜欢;
有人可以建议如何执行上述操作,但保留日期(分隔符)?
答案 0 :(得分:1)
这应该是你应该做的,它使用Zero-Width Positive Lookahead Assertion加\s+
来删除空格:
static void Main(string[] args)
{
string RegexDateIdentifier = @"\s+(?=\d{1,2}\/\d{1,2}\/\d{4})";
var sqlComments = "07/04/2017 16:09:03 by Joe Bloggs) Added 07/04/2017 17:03:04 by Joe Bloggs) Updated";
var comments = Regex.Split(sqlComments, RegexDateIdentifier);
var list = comments.ToList();
foreach (var s in list)
{
Console.WriteLine("|{0}|", s);
}
}