From: Tassilo Horn <tsdh@gnu.org>
To: Pankaj Jangid <pankaj@codeisgreat.org>
Cc: help-gnu-emacs@gnu.org
Subject: Re: query-replace-regexp on a string with '=' sign
Date: Fri, 09 Sep 2022 07:10:22 +0200 [thread overview]
Message-ID: <87leqtt9ab.fsf@gnu.org> (raw)
In-Reply-To: <87a679qj9i.fsf@codeisgreat.org>
Pankaj Jangid <pankaj@codeisgreat.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
For me (with emacs -Q on the current master), it stays as it is, i.e.,
all caps.
> but if I execute this,
> M-x query-replace-regexp RET \(.+\)XXXX RET \,(downcase \1)XXXX RET
> then the output is,
>
> HELLO=WORLD
> helloXXXXWORLD
I can reproduce that. I think that's documented on the info page I've
cited. When the replacement is all lower- or all uppercase (like
hello=), `case-replace' has an effect. But when the replacement is
mixed-case (like helloXXXX), case will be preserved.
>> 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.
Huh? You've said the first command does downcase hello in the first
line although I cannot reproduce that and would not have an explanation
for that behavior. If it's actually the same for you, then see my last
paragraph for the explanation.
Bye,
Tassilo
next prev parent reply other threads:[~2022-09-09 5:10 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-08 8:10 query-replace-regexp on a string with '=' sign Pankaj Jangid
2022-09-08 9:53 ` Emanuel Berg
2022-09-16 15:15 ` [External] : " Drew Adams
2022-09-18 15:24 ` Emanuel Berg
2022-09-08 10:49 ` Tassilo Horn
2022-09-08 11:16 ` Emanuel Berg
2022-09-09 4:11 ` Pankaj Jangid
2022-09-09 5:10 ` Tassilo Horn [this message]
2022-09-09 7:46 ` Pankaj Jangid
2022-09-09 9:26 ` Tassilo Horn
2022-09-09 12:50 ` Pankaj Jangid
2022-09-09 12:56 ` Tassilo Horn
2022-09-10 16:05 ` Pankaj Jangid
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87leqtt9ab.fsf@gnu.org \
--to=tsdh@gnu.org \
--cc=help-gnu-emacs@gnu.org \
--cc=pankaj@codeisgreat.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).