用lisp表达式替换regexp

用lisp表达式替换regexp,regex,elisp,Regex,Elisp,我有一句话: ;Last updated: Sunday, January 23, 2011 我想用当前时间替换日期。因此,我使用以下组合键替换regxp: M-x replace-regexp RET \(Last updated: \)[A-Z ,]*[0-9 ,]* RET \1\,(format-time-string "%A, %B %e, %Y") 但这会产生以下结果: ;Last updated: Tuesday, January 25, 2011unday, January

我有一句话:

;Last updated: Sunday, January 23, 2011
我想用当前时间替换日期。因此,我使用以下组合键替换regxp:

M-x replace-regexp RET \(Last updated: \)[A-Z ,]*[0-9 ,]* RET \1\,(format-time-string "%A, %B %e, %Y")
但这会产生以下结果:

;Last updated: Tuesday, January 25, 2011unday, January 23, 2011

如何让replace regexp替换整个旧日期而不是第一个字母?

您的regex只匹配大写字母。由于
Sunday
中的
u
是小写,因此它只与上次更新的
S
匹配,因此仅此而已


要修复此问题,请将a-z添加到字符范围。

您只要求大写字母

试试这个:

M-x replace-regexp RET \(Last updated: \)[a-zA-Z ,]*[0-9 ,]* RET \1\,(format-time-string "%A, %B %e, %Y")