regex - Emacs query-replace with textual transformation -


i want find text in file matches regexp of form t[a-z]u (i.e., match t followed capital letter , match u, , transform matched text capital letter lowercase. example, regexp x[a-z]y

xay 

becomes

xay 

and

xzy 

becomes

xzy 

emacs' query-replace function allows back-references, afaik not transformation of matched text. there built-in function this? have short elisp function use?

update

@marcel levy has it: \, in replacement expression introduces (arbitrary?) elisp expression. e.g., solution above is

m-x replace-regexp <ret> x\([a-z]\)z <ret> x\,(downcase \1)z 

it looks steve yegge posted answer few years back: "shiny , new: emacs 22." scroll down "changing case in replacement strings" , you'll see example code using replace-regexp function.

the general answer use "\," call lisp expression part of replacement string, in \,(capitalize \1). reading text, looks it's in interactive mode, seems 1 place necessary.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -