求一个正则表达式批量删除文本里日期和时间的代码?(需要删除的日期和时间数字都不一样)

我想把多篇txt文章当中的日期和时间都删除掉,应该咋办呀?日期和时间自己占一行,能不能批量删除这一行呀?(时间和数字没规律)注意批量替换删除的文字如下:正文1日期:201... 我想把多篇txt文章当中的日期和时间都删除掉,应该咋办呀?
日期和时间自己占一行,能不能批量删除这一行呀?(时间和数字没规律)
注意批量替换删除的文字如下:
正文1
日期:2010-07-24 00:40:11 (这一行都不要了,批量删除掉)
正文2
日期:2010-05-14 00:41:10 (这一行都不要了,批量删除掉)
正文3
日期:2010-05-25 21:37:33 (这一行都不要了,批量删除掉)
正文4
日期:2010-11-25 12:15:20 (这一行都不要了,批量删除掉)

需要说明的是.需要删除的日期和时间数字都不一样,应该咋办呀?????????
唯一相同的是每行都有日期这两个字.(也删除)
文档有130多个最好能批量处理!所以求一个正则表达式批量替换的代码或者批处理也行呀!!!!!

我在这里先谢谢各位了?我有正则表达式批量替换软件,就是不会用正则表达式批量替换日期和时间?
用正则表达式批量删除文本里日期和时间的代码?
我用的是超级批量文本替换5.0
正确答案:
删除文本中的日期为:例如----2010-07-24
代码如下:
([0-9][0-9]-[0-9][0-9]-[0-9][0-9])<特别说明,会剩下数字20没有替换)
删除文本中的时间为:例如----21:37:04
代码如下:
([0-9][0-9]:[0-9][0-9]:[0-9][0-9])
合起来就是:
第一步:用正则表达式批量删除文本里的日期:例如---日期:2010-07-24
([0-9][0-9]-[0-9][0-9]-[0-9][0-9])
第二步:用正则表达式批量删除文本里的时间:例如-----21:37:04
([0-9][0-9]:[0-9][0-9]:[0-9][0-9])
第三步:你打开文本会发现需要删除的东西只剩下------日期:20
用一般性文本替换掉以下文字即可:
日期:20
现在的问题是需要花费三步骤才能搞定:
日期:2010-05-25 21:37:33 (这一行都不要了,批量删除掉)
能不能用正则表达式一步搞定呀?
展开
 我来答
nhjjfv
2011-01-28 · TA获得超过3006个赞
知道小有建树答主
回答量:1396
采纳率:0%
帮助的人:1514万
展开全部
最简单的正则 如 : \d-\d-\d
但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题.....

对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。

UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。

先考虑与年份无关的前三条规则,年份可统一写作

(?!0000)[0-9]

下面仅考虑月和日的正则

1. 包括平年在内的所有年份的月份都包含1-28日

(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])

2. 包括平年在内的所有年份除2月外都包含29和30日

(0[13-9]|1[0-2])-(29|30)

3. 包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日

(0[13578]|1[02])-31)

合起来就是除闰年的2月29日外的其它所有日期

(?!0000)[0-9]-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)

接下来考虑闰年的实现

1 : 四年一闰
([0-9](0[48]|[2468][048]|[13579][26])

2 : 百年不闰,四百年再闰
(0[48]|[2468][048]|[13579][26])00

3 : 合起来就是所有闰年的2月29日
([0-9](0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)

四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则

^((?!0000)[0-9]-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9](0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$

考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。

^(?:(?!0000)[0-9]-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9](?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
匿名用户
2011-01-29
展开全部
祝:年年有今日,岁岁有今朝,月月涨工资,周周中彩票,天天好心情,日日好运道,白天遇财神,夜晚数钞票。 就推荐我是最佳答案吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慕名eib31
2011-01-28 · TA获得超过1923个赞
知道小有建树答主
回答量:1163
采纳率:85%
帮助的人:453万
展开全部
日期:\d+-\d+-\d+ \d+:\d+:\d+
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式