From: David Kastrup <dak@gnu.org>
To: emacs-devel@gnu.org
Cc: ding@gnus.org
Subject: Re: replace matches in any string
Date: Thu, 02 Sep 2010 19:22:35 +0200 [thread overview]
Message-ID: <87vd6ocb6s.fsf@lola.goethe.zz> (raw)
In-Reply-To: <87r5hc2hvr.fsf@lifelogs.com>
Ted Zlatanov <tzz@lifelogs.com> writes:
> SM> We could implement this feature efficiently by generalizing the `subexp'
> SM> argument so that rather than subgroup-number it can also take a special
> SM> new value `whole-string' which means "not just the whole matched text,
> SM> but the whole freakin' string". Then you could do:
>
> SM> (let ((regex "\\(alpha\\)")
> SM> (string "gamma alpha beta"))
> SM> (when (string-match regex string)
> SM> (replace-match "found greek letter \\1" nil nil string 'whole-string)))
>
> That would be great. Then we wouldn't have to play the string-match
> regex escaping game above. But it complicates the code a bit to
> provide `string'.
Hardly.
> I think Lars's suggestion to always save `string' to the same global
> variable is sensible;
For one thing I guess it is too late to change the API. For another,
that prevents strings from being garbage-collected as long as they are
present in some match-data. While the same is true of buffers, a dead
buffer does not take significant space.
> then we could say
>
> (replace-match "found greek letter \\1" nil nil 'whole-last-string)
>
> to mean "replace in the whole freakin' string you last matched on" :)
>
> In a few tests your example worked great. Lars, WDYT?
>
> In general, it would be really nice if there was a
> match-string/string-match/replace-match API variation that worked like
> Perl's $1...$9 and Perl's named captures. Those simply contain the
> matched substring.
What's wrong with match-substitute-replacement ?
--
David Kastrup
next prev parent reply other threads:[~2010-09-02 17:22 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-07 21:15 [PATCH] Use replace-match in posting-style Daniel Dehennin
2009-07-08 18:51 ` Ted Zlatanov
2010-04-10 9:57 ` Daniel Dehennin
2010-04-10 19:10 ` Johan Bockgård
2010-04-10 23:22 ` Daniel Dehennin
2010-04-11 13:13 ` Andreas Schwab
2010-04-11 14:04 ` Daniel Dehennin
2010-04-11 15:06 ` Andreas Schwab
2010-04-12 12:18 ` Daniel Dehennin
2010-06-23 21:02 ` Daniel Dehennin
2010-07-08 13:57 ` Ted Zlatanov
2010-07-12 19:43 ` Daniel Dehennin
2010-07-30 17:43 ` replace matches in any string (was: [PATCH] Use replace-match in posting-style.) Ted Zlatanov
2010-09-01 13:55 ` replace matches in any string Ted Zlatanov
2010-09-02 11:29 ` Stefan Monnier
2010-09-02 13:10 ` Ted Zlatanov
2010-09-02 14:44 ` Lars Magne Ingebrigtsen
2010-09-02 16:21 ` Stefan Monnier
2010-09-02 16:45 ` David Kastrup
2010-09-02 17:08 ` Ted Zlatanov
2010-09-02 17:22 ` David Kastrup [this message]
2010-09-02 17:51 ` Ted Zlatanov
2010-09-02 18:04 ` David Kastrup
2010-09-02 19:12 ` Ted Zlatanov
[not found] ` <8739tsosyg.fsf_-_@maguirefamily.org>
2010-09-02 21:52 ` Recommended gnus spam filter system? Ted Zlatanov
2010-09-02 20:27 ` replace matches in any string Stefan Monnier
2010-09-02 22:18 ` Lars Magne Ingebrigtsen
2010-09-03 5:33 ` David Kastrup
2010-09-03 17:06 ` Lars Magne Ingebrigtsen
2010-08-29 20:07 ` [PATCH] Use replace-match in posting-style Lars Magne Ingebrigtsen
2010-08-30 13:41 ` Ted Zlatanov
2010-08-30 17:11 ` Lars Magne Ingebrigtsen
2010-08-31 18:42 ` Ted Zlatanov
2010-08-31 18:47 ` Lars Magne Ingebrigtsen
2010-09-02 17:59 ` Ted Zlatanov
2010-09-02 19:32 ` Daniel Dehennin
2010-09-02 19:50 ` [PATCH] Permit the use of regular expression match and replace in posting styles Daniel Dehennin
2010-09-02 21:56 ` Ted Zlatanov
2010-09-04 22:47 ` Mike Kupfer
2010-09-05 2:36 ` Ted Zlatanov
2010-09-06 22:43 ` Mike Kupfer
2010-09-06 23:18 ` Ted Zlatanov
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87vd6ocb6s.fsf@lola.goethe.zz \
--to=dak@gnu.org \
--cc=ding@gnus.org \
--cc=emacs-devel@gnu.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 NNTP newsgroup(s).