[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 < and >.
>> I want to replace only some of the pairs with "[" and "]".
>>
>> I figured out the match string:
>>
>> "\\(<\\|>\\)
>>
>> (typed as)
>>
>> "\(<\|>\)
>>
>> 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 < with [, the other to
> replace > 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:
>
> <\(.*?\)>
> Relace with:
> [\1]
Thanks Barry, that worked for what I wanted and is perhaps better.
> Or maybe this is what you mean:
>
> <\|>
> Replace with:
> \,(if (string-equal \& "<" "[" "]"))
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