将replace-regexp与lisp表达式一起使用

时间:2011-01-25 15:48:13

标签: regex elisp

我有这一行:

;Last updated: Sunday, January 23, 2011

我想用当前时间替换日期。所以,我使用replace-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替换整个旧日期而不是第一个字母?

2 个答案:

答案 0 :(得分:2)

你的正则表达式只匹配大写字母。由于u中的Sunday是小写的,它只匹配Last updated: S,所以这一切都会被替换。

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

答案 1 :(得分:0)

你只要求大写字母。

试试这个:

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