[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#12622: replace-regexp-in-string
From: |
Andreas Röhler |
Subject: |
bug#12622: replace-regexp-in-string |
Date: |
Thu, 11 Oct 2012 16:17:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120825 Thunderbird/15.0 |
Hi,
the following question was raised at:
http://stackoverflow.com/questions/12809610/replace-regexp-in-string-with-lookahead-behind
I'd like to replace all occurrences of \w \w with \w\\\w in a string, where the
\w parts stay the same before and after the replacement, e.g.
[.A foobar] [.B baz]
should result in
[.A\\foobar] [.B\\baz]
;;;;;;;;;;
this might be solved in buffer
by
(while (re-search-forward "\\_<\\w+\\_>" nil t 1)
(replace-match (concat "\\\\\\\\" (match-string-no-properties 0) )))
Also would expect a respective form working with replace-regexp-in-string
(setq mystring "[.A foobar] [.B baz]")
(replace-regexp-in-string "\\_<\\w+\\_>" (concat "\\\\"
(match-string-no-properties 0) ) mystring)
but it fails.
When commenting "(match-string 0 str)" as follows it subr.el it works
(setq matches
(cons (replace-match (if (stringp rep)
rep
(funcall rep
;; (match-string 0 str)
))
fixedcase literal str subexp)
Which has some plausibility: when receiving a user-specified function, there
must not be that argument.
Maybe have a look,
Best,
Andreas
- bug#12622: replace-regexp-in-string,
Andreas Röhler <=
- bug#12622: replace-regexp-in-string, Andreas Schwab, 2012/10/11
- bug#12622: replace-regexp-in-string, Andreas Röhler, 2012/10/11
- bug#12622: replace-regexp-in-string, Andreas Schwab, 2012/10/11
- bug#12622: replace-regexp-in-string, Andreas Röhler, 2012/10/12
- bug#12622: replace-regexp-in-string, Andreas Schwab, 2012/10/12
- bug#12622: replace-regexp-in-string, Stefan Monnier, 2012/10/12
- bug#12622: replace-regexp-in-string, Andreas Röhler, 2012/10/12
- bug#12622: replace-regexp-in-string, Stefan Monnier, 2012/10/12