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

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

Re: Query replace regex with 2 alternatives


From: Dan Espen
Subject: Re: Query replace regex with 2 alternatives
Date: Fri, 07 Dec 2012 15:06:48 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)

Barry Margolin <barmar@alum.mit.edu> writes:

> In article <icd2ylg5zz.fsf@home.home>, Dan Espen <despen@verizon.net> 
> wrote:
>
>> Could use some help on query/replace/regex.
>> 
>> I have an html file full of &lt; and &gt;.
>> I want to replace only some of the pairs with "[" and "]".
>> 
>> I figured out the match string:
>> 
>> "\\(&lt;\\|&gt;\\)
>> 
>> (typed as)
>> 
>> "\(&lt;\|&gt;\)
>> 
>> but when it comes to the replacement, I'm not clear on how to say,
>> first match gets [ and second match gets ].
>
> Do two separate query-replaces, one to replace &lt; with [, the other to 
> replace &gt; with ].
>
>> I believe emacs can do it but I don't see it documented.
>> I see references to \1 \2 but not in the replace string.
>
> I think what you're talking about is:
>
> &lt;\(.*?\)&gt;
> Relace with:
> [\1]

Thanks Barry, that worked for what I wanted and is perhaps better.

> Or maybe this is what you mean:
>
> &lt;\|&gt;
> Replace with:
> \,(if (string-equal \& "&lt;" "[" "]"))

This is what I was asking for.
I pasted both values into emacs and the latter part gave me an
error, (wrong-number-of-arguments if 1).  The same error I get if
I try to evaluate the expression.  Not important now, I got the idea.

I don't see "\," here:

http://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Backslash.html#Regexp-Backslash

http://tinyurl.com/aqod6fv

okay, I do see it here:

http://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Replace.html#Regexp-Replace

It would have helped if I looked at the current documentation...

Thanks again.

-- 
Dan Espen


reply via email to

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