[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Using re-builder
From: |
Kevin Rodgers |
Subject: |
Re: Using re-builder |
Date: |
Fri, 18 Jun 2004 10:05:00 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:0.9.4.1) Gecko/20020406 Netscape6/6.2.2 |
Phil_C wrote:
> Michael Slass <miknrene@drizzle.com> wrote in message
news:<m3n031ol2b.fsf@eric.rossnet.com>...
>>Try this:
>>
>>(defun reb-copy-unquoted ()
>> "Copy current RE into the kill ring for later insertion as unquoted."
>> (interactive)
>> (reb-update-regexp)
>> (let ((re (with-temp-buffer
>> (insert (reb-target-binding reb-regexp))
>> (replace-string "\\\\" "\\" nil (point-min) (point-max))
>> (buffer-substring (point-min) (point-max)))))
>> (kill-new re)
>> (message "Regexp copied to kill-ring")))
>
> Thanks, that just about does it - except the beginning and ending
> quotes are still there. Still, that's much better than it was before,
> since now I don't have to go through the whole regex deleting "\"s.
Well, you could either replace "\\`\"" and "\"\\'" with "", or avoid
inserting them in the first place:
(let ((regexp (reb-target-binding reb-regexp)))
(insert (substring regexp 1 (1- (length regexp)))))
Another approach would be to leave the regexp string in the kill ring,
but define a new command to yank the regexp itself into the minibuffer.
And instead of using replace-string to replace "\\\\" with "\\", you
might be able to get the lisp reader to do it for you (e.g. with
make-symbol).
--
Kevin Rodgers
Re: Using re-builder, martin, 2004/06/29