正则表达式用空字符串删除或替换斜杠前后的日期或数字

时间:2014-01-29 07:34:20

标签: c#

我有一堆字符串,我正在使用Regex根据需要替换不需要的字符。 但是,我在删除日期时遇到问题,例如:1/09/2014 1/29或1-29。

如何删除它们。我正在尝试这样的事情,但现在已经过时了:我可以简单地输入不起作用的个别角色。取自这里:Strip Invalid Character

Regex.Replace(strIn, @"[^\w\.@-]", "");

示例输入看起来完全如下:今天2014年1月29日我将参加音乐会。

输出:今天我将参加音乐会。

2 个答案:

答案 0 :(得分:0)

这应该有效。为了生成它,我使用了http://txt2re.com/ - >非常方便的工具。

string txt="Today 01/29/2014 I will go to the concert";

string re1=".*?";   // Non-greedy match on filler
string re2="((?:[0]?[1-9]|[1][012])[-:\\/.](?:(?:[0-2]?\\d{1})|(?:[3][01]{1}))[-:\\/.](?:(?:[1]{1}\\d{1}\\d{1}\\d{1})|(?:[2]{1}\\d{3})))(?![\\d])"; // MMDDYYYY 1

var newString = Regex.Replace(txt, re1+re2, "");

答案 1 :(得分:0)

试试这个正则表达式

(?<=[0-9]{2}[\/\-][0-9]{2}[\/\-][0-9]{4}).*$|.*(?=[0-9]{2}[\/\-][0-9]{2}[\/\-][0-9]{4})

REGEX DEMO