首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用正则表达式查找和替换notepad++中更改的日期格式

使用正则表达式查找和替换notepad++中更改的日期格式
EN

Stack Overflow用户
提问于 2021-11-03 17:45:37
回答 1查看 582关注 0票数 2

我需要更改SQL文件中许多值的日期格式。

有日期值,是在‘DD-MON’格式,但我需要他们是'YYYY-MM-DD‘格式。

在这份文件中,我有21世纪和20世纪的日期:

代码语言:javascript
复制
to_date('01-Nov-20','DD-MON-RR'),to_date('28-Dec-99','DD-MON-RR')

我正在寻找一个正则表达式来查找和替换这些值。

这是我第一次尝试,即使是20世纪的作品:

代码语言:javascript
复制
FIND: 
(\d{2})-(\w{3})-(([0-4])\d|[5-9]\d)

REPLACE: 
(?{4}20:19)\3-\2-\1

这一项有助于重新排序元素的位置,但我必须用相关的数字替换所有月份。

现在,我正在搜索在同一个正则表达式中查找和替换月份名称的内容:

代码语言:javascript
复制
FIND: 
(\d{2})-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-(([0-4])\d|[5-9]\d)

现在我很难写出替换表达式,有人能帮我吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-03 18:00:48

您可以定义多个月(月缩写)而不是(\w{3}),并在条件替换模式中使用更多的条件。

您可以使用

找到什么:(\d{2})-(?:(Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-(([0-4])\d|[5-9]\d)

替换为:(?{15}20:19)$14-(?{13}12:?{12}11:?{11}10:?{10}09:?{9}08:?{8}07:?{7}06:?{6}05:?{5}04:?{4}03:?{3}02:?{2}01)-$1

请参阅演示屏幕截图:

因此,(\w{3})(?:(Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))取代,这是一个包含12个捕获组的非捕获组.您可以编辑它,例如,也支持Sept,在Sep之后添加t?,或者在Jun之后添加e?,以也支持June

对替换模式进行调整,以考虑新引入的12个捕获组。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69829470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档