簡體   English   中英

C#Regex Pattern刪除列表中的所有內容

[英]C# Regex Pattern to remove all in a List

我有一個包含許多項目的字符串列表,其中一些以日期/時間開頭,格式如下:

2016-05-04 18:46:05.115 Copyright (c) 2014 Microsoft Corporation

我希望循環並從列表中包含該格式的所有項目中刪除該日期/時間。

目前我有這個:

var regexDateTime = "/^(\\d{4})-(\\d{2})-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})$/";
preperationMessages = preperationMessages
    .Select(x => Regex.Replace(x, regexDateTime, ""))
    .ToList();

它根本沒有過濾掉任何日期。 任何幫助,將不勝感激。 謝謝!

使用這個正則表達式:

var regex = @"^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})\.(\d{3})";

你的正則表達式的問題是最后的'$',它意味着字符串結束而不是你想要的。 另外一點是,你不要在csharp中使用正則表達式的開頭和結尾處的斜杠,就像在javascript中一樣。

如果您不想使用RegEx,這也有效(根據您的郵件集合的大小,這可能會更快:

int dateChars = 23;
DateTime output;

// Remove leading date(s)
preparationMessages = preparationMessages
    .Select(x => x.Length > dateChars && DateTime.TryParse(x.Substring(0, dateChars), out output) ? x.Substring(dateChars+1) : x)
    .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM