【发布时间】:2010-09-08 15:15:38
【问题描述】:
我想在文件中查找与 t[A-Z]u 形式的正则表达式匹配的任何文本(即匹配 t 后跟一个大写字母和另一个匹配u,并将匹配的文本转换为大写字母。例如,对于正则表达式x[A-Z]y
xAy
变成
xay
和
xZy
变成
xzy
Emacs 的 query-replace 函数允许反向引用,但 AFAIK 不允许转换匹配的文本。有没有内置函数可以做到这一点?有人有我可以使用的简短 Elisp 函数吗?
更新
@Marcel Levy 有它:\, 在替换表达式中引入了(任意?)Elisp 表达式。例如,上面的解决方案是
M-x replace-regexp <RET> x\([A-Z]\)z <RET> x\,(downcase \1)z
【问题讨论】: