-4
我有一个由一系列行组成的文档。在每行的中间有yy.mm.dd
的时间戳,例如15.12.05
。更改并在记事本中移动时间戳++
在Notepad ++中使用PCRE(Perl兼容的正则表达式),我该怎么做?
- 将每个时间戳从其行的中间移到其行的末尾。
- 将每个时间戳的格式从
yy.mm.dd
更改为mmm dd, yyyy
,例如,Dec 05, 2015
。
我有一个由一系列行组成的文档。在每行的中间有yy.mm.dd
的时间戳,例如15.12.05
。更改并在记事本中移动时间戳++
在Notepad ++中使用PCRE(Perl兼容的正则表达式),我该怎么做?
yy.mm.dd
更改为mmm dd, yyyy
,例如, Dec 05, 2015
。这个问题有三个部分。
yy.mm.dd
的时间戳。的时间戳格式yy.mm.dd
可以通过此正则表达式匹配:
\d{2}\.\d{2}\.\d{2}
如果可以假定每一个时间戳由非词被起诉和紧随其后,然后此正则表达式会更好:
\b\d{2}\.\d{2}\.\d{2}\b
为了使用查找/替换将时间戳移动到行的末尾,您需要在单独的组中匹配行的时间戳和其余内容。 (以下假设是每行只有一个时间戳)
Find: ^(?<begin>.*?)(?<timestamp>\b\d{2}\.\d{2}\.\d{2}\b)(?<end>[^$]*)$
Replace: \k<begin>\k<end> \k<timestamp>
你应该格式化时间戳在一个单独的操作你解压后移动它们。这是因为您需要执行12次单独的查找/替换操作才能正确转换时间戳记格式,每个月一次。
Find: (?<year>\d{2})\.01\.(?<day>\d{2})$
Replace: Jan \k<day>, 20\k<year>
Find: (?<year>\d{2})\.02\.(?<day>\d{2})$
Replace: Feb \k<day>, 20\k<year>
...
Find: (?<year>\d{2})\.12\.(?<day>\d{2})$
Replace: Dec \k<day>, 20\k<year>
注意,这里假设每年为> = 2000
好了,你有没有尝试过的东西没有?你有什么问题促使你问这里? – 4castle
我没有试过任何成功的任务。我所有的尝试失败了。我搜索了一些其他主题。但所有的答案都没有做我所需要的。 –
你使用什么语言/工具? – Travis