这是我的参数:
- 我需要将 MM/DD/YYYY(MM-DD-YYYY、MM.DD.YYYY 等)更改为 MONTH、DAY YEAR。例如:2001 年 1 月 29 日 => 2001 年 1 月 29 日。
- 这是为了人类阅读的输出。我需要在多台计算机上多次进行此更改。以前负责此任务的人一直是手工完成的。
- 我可以依赖 VIM(因为它在拇指驱动器上),但当我使用它时,计算机上没有其他东西。
挑战:在每台计算机上制作一个正则表达式来快速解决这个问题。
这就是我所拥有的(使用#'s 作为分隔符):
%s#\([1-9]\|1[012]\)[- /.]\([1-9]\|[12][0-9]\|3[01]\)[- /.]\([19\|20]\d\d\)#UGLYPART \2, \3#g
搜索部分正常工作,因为我在正确的位置得到了 \2 和 \3。我知道 UGLYPART 将使用 \1,然后进行某种评估,例如:
((\1)\=(1\|2\|3\|4\|5\|6\|7\|8\|9\|10\|11\|12)(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December))
除了它会起作用。
有没有人有任何见解?我觉得我大约有 90% 在那里。还是我对 Vim 的正则表达式要求太多了?