如何用空字符串替换字符串包含DateTime?

时间:2013-10-12 07:44:15

标签: c# regex datetime replace

如何替换字符串,例如

LD1091158 LD1091158 LD1091158 ScreenLysP - :10/11/2013 3:30:46 PM  1 91 / ABDLys2HB+ LD1091159 LD1091159 LD1091159 ScreenLysP - ABDLys2HA+ 

上面的是一个字符串。在此我想将 10/11/2013 3:30:46 PM 替换为空字符串。  我使用正则表达式但这不起作用。

Regex.Replace(str, @"\d{1,2}/\d{1,2}/\d{4} \d\d:\d\d:\d\d [AP]M", "");

但它不起作用。

2 个答案:

答案 0 :(得分:0)

\d\d匹配2位数。使用\d{1,2}\d\d?匹配1或2位数。

Regex.Replace(str, @"\d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d\d:\d\d [AP]M", "");
//                                         ^^^^^^^

请参阅demo

答案 1 :(得分:0)

试试这个正则表达式

\d{1,2}\/\d{1,2}\/\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}\s[AP]M

enter image description here

你错过的点数

  1. 要逃避空间,您需要\s
  2. 要转义/,您需要\/
  3. <强>更新

    我尝试了这个,它对我有用

    string s = "LD1091158 LD1091158 LD1091158 ScreenLysP - :10/11/2013 3:30:46 PM  1 91 / ABDLys2HB+ LD1091159 LD1091159 LD1091159 ScreenLysP - ABDLys2HA+ ";
    string ss = Regex.Replace(s, @"\d{1,2}\/\d{1,2}\/\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}\s[AP]M", "");
    Console.WriteLine(ss);
    

    <强>输出:

      

    LD1091158 LD1091158 LD1091158 ScreenLysP - :1 91 /   ABDLys2HB + LD1091159 LD1091 159 LD1091159 ScreenLysP - ABDLys2HA +