emacs regexp用"11"代替11

bph*_*bph 0 emacs

我有一堆C整数数组初始化代码,例如

int a[] = {11,22,33,44};
Run Code Online (Sandbox Code Playgroud)

我想改成字符串,例如

char *a[] = {"11","22","33","44"};
Run Code Online (Sandbox Code Playgroud)

我可以使用reg exp来做到这一点吗?例如

M-x replace-regexp RET
Replace regexp: [0-9] RET
Replace regexp with: "[0-9]" RET
Run Code Online (Sandbox Code Playgroud)

Mar*_*air 6

您可以执行以下操作:

M-x query-replace-regexp
Query replace regexp: \([0-9]+\)
Query replace regexp \([0-9]+\) with: "\1"
Run Code Online (Sandbox Code Playgroud)

[0-9]+匹配一个或多个连续数字.逃脱的括号,\(并且\),使内容的组.该\1替换字符串替换任何在第一组查询转义的括号之间的匹配.

由于choroba在你通常可以使用注释的提示C-M-%进行query-replace-regexp.