2011-01-25 39 views
0

我有这样一行:使用替代,正则表达式和Lisp表达

;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 

我如何获得替代,正则表达式替换整个旧日期,而不是只是第一个字母?

回答

2

您的正则表达式仅匹配大写字母。由于Sunday中的u是小写字母,因此它只与Last updated: S匹配,所以这些都取代了。

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

0

你只是要求大写字母。

试试这个:

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