help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: query-replace-regexp on a string with '=' sign


From: Pankaj Jangid
Subject: Re: query-replace-regexp on a string with '=' sign
Date: Fri, 09 Sep 2022 09:41:37 +0530
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Tassilo Horn <tsdh@gnu.org> writes:

>> I have a line like this,
>>   HELLO=WORLD
>> now I want to downcase the part before the equal (=) sign.
>> I am approaching like this
>>
>>  M-x query-replace-regexp RET \(.+\)= RET \,(downcase \1)= RET
>>
>> But this doesn't work.
>
> Where "doesn't work" means "doesn't downcase but keeps HELLO", right?

Yes. Suppose I have these lines in a region

HELLO=WORLD
HELLOXXXXWORLD

and if I now execute following sequence,

M-x query-replace-regexp RET \(.+\)= RET \,(downcase \1)= RET

the output is,

hello=WORLD
HELLOXXXXWORLD

but if I execute this,

M-x query-replace-regexp RET \(.+\)XXXX RET \,(downcase \1)XXXX RET

then the output is,

HELLO=WORLD
helloXXXXWORLD


> Have a look at (info "(emacs) Replacement and Lax Matches") which
> explains it.  I think the default `case-replace' value of t is the
> problem here.
>

Thanks for pointing me to the right direction. Understood case-replace
thing. But the one thing that is still not clear to me is that, why the
first command doesn't downcase HELLO in the first line, whereas the
second command downcases the HELLO in the second line.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]