emacs replace-regexp的语法

Dov*_*Dov 5 regex emacs

我正试图找到每个日期并在其周围加上引号.我认为这应该是:

M-x replace-regexp 201\d-\d\d-\d\d <ret> '\&'

我也试过[0-9]而不是\d.

它不起作用.但是使用isearch-forward-regexp我可以输入[0-9][0-9]并观看目标突出显示.替换时我做错了什么?

Sea*_*ean 9

Emacs regexp没有通用的\d简写[0-9].

我只是将文本2011-04-01放入一个新的缓冲区,回到缓冲区的开头,然后键入M-x replace-regexp RET 201[0-9]-[0-9][0-9]-[0-9][0-9] RET '\&' RET,并且日期被单引号包围,正如预期的那样.


Nic*_*ley 5

\dEmacs正则表达式语法不支持(C-h S regexp有关于它们的文档).您可以[0-9]像您一样使用,也可以使用POSIX样式[[:digit:]].

但是,你所做的(和[0-9])应该有效,并且实际上只是为我工作.如果您在程序中使用正则表达式,您可能也会觉得M-x regexp-builder有用.