* Re: Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character. [not found] <mailman.1299.1227715545.26697.help-gnu-emacs@gnu.org> @ 2008-11-26 17:25 ` Xah Lee 2008-11-27 20:24 ` Tim Visher 0 siblings, 1 reply; 7+ messages in thread From: Xah Lee @ 2008-11-26 17:25 UTC (permalink / raw) To: help-gnu-emacs On Nov 26, 6:41 am, "Tim Visher" <tim.vis...@gmail.com> wrote: > Hello Everyone, > > I have a bunch of arbitrarily long strings of '=' characters and I > would like to replace them one for one with '-' characters. I know I > could do this with a simple find and replace using isearch, but that > would require me going through them one at a time. I'm wondering if > there's a way to do this with a regex such as: > > r/(=+)/-{length of n} > > Obviously that's a major bastardization of syntax and doesn't really > exist in any language, but I figure this should be able to be done in > Emacs somehow. if your question is about interactive use, then you can use query-replace query-replace-regexp after you type the find string and replace string, you can just type “!” to replace them all in one shot in the current buffer. If you don't want it to promp you on the first finding, you can call replace-string instead. If your question is about doing the replacement on whole directory of files, you can mark the files in dired and then invoke dired-do-query- replace-regexp. See: • Find and Replace with Emacs http://xahlee.org/emacs/emacs_find_replace.html • Interactively Find and Replace String Patterns on Multiple Files http://xahlee.org/emacs/find_replace_inter.html If your question is about writing a lisp program so that you can press a button to do all the replacement you want without needing to answer prompt bout find/replace string, on a single file or bunch of files, it's very easy too. See for example: • Elisp Lesson: Repeated Find Replace http://xahlee.org/emacs/elisp_repeat_replace.html > In Christ, • Has Religion Made Useful Contributions to Civilization? http://xahlee.org/p/religion_Russell.html Xah ∑ http://xahlee.org/ ☄ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character. 2008-11-26 17:25 ` Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character Xah Lee @ 2008-11-27 20:24 ` Tim Visher 2008-11-27 23:23 ` Peter Dyballa ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Tim Visher @ 2008-11-27 20:24 UTC (permalink / raw) To: Xah Lee; +Cc: help-gnu-emacs Yeah, I did consider using replace-string and query-replace-string and their ilk. The issue is that I use the characters I want to replace at other locations where I don't want them replaced. Also, I want to replace an arbitrary amount of them at one time. I actually already did the edits that I want done by using query-replace-string. However, if the document had been much longer, that really would've taken too long. It doesn't sound like there's a quick way to do this in Emacs. Oh well. Thanks anyway. On Wed, Nov 26, 2008 at 12:25 PM, Xah Lee <xahlee@gmail.com> wrote: > On Nov 26, 6:41 am, "Tim Visher" <tim.vis...@gmail.com> wrote: >> Hello Everyone, >> >> I have a bunch of arbitrarily long strings of '=' characters and I >> would like to replace them one for one with '-' characters. I know I >> could do this with a simple find and replace using isearch, but that >> would require me going through them one at a time. I'm wondering if >> there's a way to do this with a regex such as: >> >> r/(=+)/-{length of n} >> >> Obviously that's a major bastardization of syntax and doesn't really >> exist in any language, but I figure this should be able to be done in >> Emacs somehow. > > if your question is about interactive use, then you can use > > query-replace > query-replace-regexp > > after you type the find string and replace string, you can just type > "!" to replace them all in one shot in the current buffer. > > If you don't want it to promp you on the first finding, you can call > replace-string instead. > > If your question is about doing the replacement on whole directory of > files, you can mark the files in dired and then invoke dired-do-query- > replace-regexp. > > See: > > • Find and Replace with Emacs > http://xahlee.org/emacs/emacs_find_replace.html > > • Interactively Find and Replace String Patterns on Multiple Files > http://xahlee.org/emacs/find_replace_inter.html > > If your question is about writing a lisp program so that you can press > a button to do all the replacement you want without needing to answer > prompt bout find/replace string, on a single file or bunch of files, > it's very easy too. See for example: > > • Elisp Lesson: Repeated Find Replace > http://xahlee.org/emacs/elisp_repeat_replace.html > >> In Christ, > > • Has Religion Made Useful Contributions to Civilization? > http://xahlee.org/p/religion_Russell.html > > Xah > ∑ http://xahlee.org/ > > ☄ > -- In Christ, Timmy V. http://burningones.com/ http://five.sentenc.es/ - Spend less time on e-mail ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character. 2008-11-27 20:24 ` Tim Visher @ 2008-11-27 23:23 ` Peter Dyballa [not found] ` <mailman.1392.1227828233.26697.help-gnu-emacs@gnu.org> 2008-11-28 1:01 ` tyler 2 siblings, 0 replies; 7+ messages in thread From: Peter Dyballa @ 2008-11-27 23:23 UTC (permalink / raw) To: Tim Visher; +Cc: help-gnu-emacs Help Am 27.11.2008 um 21:24 schrieb Tim Visher: > The issue is that I use the characters I want to replace > at other locations where I don't want them replaced. You can mark a region. This will restrict substitutions to happen only inside the marked region. -- Greetings Pete Remember: use logout to logout. ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <mailman.1392.1227828233.26697.help-gnu-emacs@gnu.org>]
* Re: Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character. [not found] ` <mailman.1392.1227828233.26697.help-gnu-emacs@gnu.org> @ 2008-11-28 0:01 ` Andreas Politz 0 siblings, 0 replies; 7+ messages in thread From: Andreas Politz @ 2008-11-28 0:01 UTC (permalink / raw) To: help-gnu-emacs Peter Dyballa wrote: > > Am 27.11.2008 um 21:24 schrieb Tim Visher: > >> The issue is that I use the characters I want to replace >> at other locations where I don't want them replaced. > > You can mark a region. This will restrict substitutions to happen only > inside the marked region. > > -- > Greetings > > Pete > > Remember: use logout to logout. > > > > I guess this regexp will never match \(.\)\1*\=\1* Maybe this will: (defun replace-chars-around-point (new-char) "Replace all occurences of char at, before and after point with NEW-CHAR." (interactive (list (read-char (format "Replace %s with: " (thing-at-point 'char))))) (let ((p (point)) ;save-excursion does not work here (char (thing-at-point 'char))) (if (not char) (error "Buffer is empty")) (skip-chars-backward char) (re-search-forward (format "%s+" char)) (replace-match (make-string (- (match-end 0) (match-beginning 0)) new-char)) (goto-char p))) -ap ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character. 2008-11-27 20:24 ` Tim Visher 2008-11-27 23:23 ` Peter Dyballa [not found] ` <mailman.1392.1227828233.26697.help-gnu-emacs@gnu.org> @ 2008-11-28 1:01 ` tyler 2 siblings, 0 replies; 7+ messages in thread From: tyler @ 2008-11-28 1:01 UTC (permalink / raw) To: help-gnu-emacs "Tim Visher" <tim.visher@gmail.com> writes: > Yeah, I did consider using replace-string and query-replace-string and > their ilk. The issue is that I use the characters I want to replace > at other locations where I don't want them replaced. Also, I want to > replace an arbitrary amount of them at one time. I actually already > did the edits that I want done by using query-replace-string. > However, if the document had been much longer, that really would've > taken too long. It doesn't sound like there's a quick way to do this > in Emacs. Oh well. > This brings to mind the old chestnut: Some people, when confronted with a problem, think "I know, I’ll use regular expressions." Now they have two problems. --Jamie Zawinski Evaluate the following (C-x C-e with point after the final ')' ), then call it with `M-x switcheroo' when point is before the sample text below. It solves your problem, as I understand it. (defun switcheroo () "Replaces multiple consecutive '=' chars with the same number of '*'. Single '=' are left unmolested" (interactive) (save-excursion (while (search-forward "=") (if (looking-at "=") (progn (backward-char 1) (while (looking-at "=") (delete-char 1) (insert "*"))))))) ==========asdf;lkj asdf= asdflkj = asdf asflkj ==asdfa;lkj aslkj ===as;fl;kj =====asd;flkj as;dlfkja sd============= asdf=asdflkj=asdfas= =asdf=asdf= ========================== HTH, Tyler -- There is something fascinating about science. One gets such wholesale returns of conjecture out of such a trifling investment of fact. --Mark Twain ^ permalink raw reply [flat|nested] 7+ messages in thread
* Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character. @ 2008-11-26 14:41 Tim Visher 2008-11-26 16:31 ` Peter Dyballa 0 siblings, 1 reply; 7+ messages in thread From: Tim Visher @ 2008-11-26 14:41 UTC (permalink / raw) To: help-gnu-emacs Hello Everyone, I have a bunch of arbitrarily long strings of '=' characters and I would like to replace them one for one with '-' characters. I know I could do this with a simple find and replace using isearch, but that would require me going through them one at a time. I'm wondering if there's a way to do this with a regex such as: r/(=+)/-{length of n} Obviously that's a major bastardization of syntax and doesn't really exist in any language, but I figure this should be able to be done in Emacs somehow. Thanks in advance! -- In Christ, Timmy V. http://burningones.com/ http://five.sentenc.es/ - Spend less time on e-mail ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character. 2008-11-26 14:41 Tim Visher @ 2008-11-26 16:31 ` Peter Dyballa 0 siblings, 0 replies; 7+ messages in thread From: Peter Dyballa @ 2008-11-26 16:31 UTC (permalink / raw) To: Tim Visher; +Cc: help-gnu-emacs Am 26.11.2008 um 15:41 schrieb Tim Visher: > I have a bunch of arbitrarily long strings of '=' characters and I > would like to replace them one for one with '-' characters. Have you thought of replace-string? (replace-string from-string to- string &optional delimited start end) does not use a regular expression, it substitutes one string (=) with another (-). > > In Christ, No! In Emacs. -- Greetings Pete We are usually convinced more easily by reasons we have found ourselves than by those which have occurred to others. – Blaise Pascal ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-11-28 1:01 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <mailman.1299.1227715545.26697.help-gnu-emacs@gnu.org> 2008-11-26 17:25 ` Utilizing Regexp (or something else) to replace an arbitrary string length of the same character with the same string length of another character Xah Lee 2008-11-27 20:24 ` Tim Visher 2008-11-27 23:23 ` Peter Dyballa [not found] ` <mailman.1392.1227828233.26697.help-gnu-emacs@gnu.org> 2008-11-28 0:01 ` Andreas Politz 2008-11-28 1:01 ` tyler 2008-11-26 14:41 Tim Visher 2008-11-26 16:31 ` Peter Dyballa
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 read-only IMAP folder(s) and NNTP newsgroup(s).