用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")