* Making a regex string that matches ( @ 2022-03-10 13:36 angelomolina--- via Users list for the GNU Emacs text editor 2022-03-10 14:39 ` Emanuel Berg via Users list for the GNU Emacs text editor ` (2 more replies) 0 siblings, 3 replies; 12+ messages in thread From: angelomolina--- via Users list for the GNU Emacs text editor @ 2022-03-10 13:36 UTC (permalink / raw) To: Help Gnu Emacs How can I make a regex string if I want to search for (. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 13:36 Making a regex string that matches ( angelomolina--- via Users list for the GNU Emacs text editor @ 2022-03-10 14:39 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-10 15:51 ` Robert Pluim 2022-03-10 15:13 ` Leo Butler 2022-03-11 23:43 ` Eduardo Ochs 2 siblings, 1 reply; 12+ messages in thread From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2022-03-10 14:39 UTC (permalink / raw) To: help-gnu-emacs angelomolina--- via Users list for the GNU Emacs text editor wrote: > How can I make a regex string if I want to search for (. Uhm ... how much is a 50¢ stamp? (re-search-forward "(") ( -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 14:39 ` Emanuel Berg via Users list for the GNU Emacs text editor @ 2022-03-10 15:51 ` Robert Pluim 2022-03-10 17:14 ` goncholden 0 siblings, 1 reply; 12+ messages in thread From: Robert Pluim @ 2022-03-10 15:51 UTC (permalink / raw) To: help-gnu-emacs >>>>> On Thu, 10 Mar 2022 15:39:03 +0100, Emanuel Berg via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> said: Emanuel> angelomolina--- via Users list for the GNU Emacs text editor wrote: >> How can I make a regex string if I want to search for (. Emanuel> Uhm ... how much is a 50¢ stamp? Emanuel> (re-search-forward "(") And since youʼre searching for a literal '(', you can use `search-forward'. Robert -- ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 15:51 ` Robert Pluim @ 2022-03-10 17:14 ` goncholden 2022-03-10 17:48 ` Eric Abrahamsen ` (3 more replies) 0 siblings, 4 replies; 12+ messages in thread From: goncholden @ 2022-03-10 17:14 UTC (permalink / raw) To: Robert Pluim; +Cc: help-gnu-emacs ------- Original Message ------- On Thursday, March 10th, 2022 at 3:51 PM, Robert Pluim <rpluim@gmail.com> wrote: > > > > > > On Thu, 10 Mar 2022 15:39:03 +0100, Emanuel Berg via Users list for the GNU Emacs text editor help-gnu-emacs@gnu.org said: > > Emanuel> angelomolina--- via Users list for the GNU Emacs text editor wrote: > > >> How can I make a regex string if I want to search for (. > > Emanuel> Uhm ... how much is a 50¢ stamp? > > Emanuel> (re-search-forward "(") > > And since youʼre searching for a literal '(', you can use > > `search-forward'. > > Robert Have come up with the following function. Would this be enough to count the number oy opening parantheses in a region ? (defun bracketing-count (region-start region-end) "Counts opening and closing bracketing marks. Interactive functions enable them to be called using `M-x`" (interactive "r") ; gets region start and end (message "Counting bracketing marks ...") (save-excursion (let (count) (setq count 0) (goto-char region-start) (while (and (< (point) region-end) (search-forward "\(" region-end t)) (setq count (1+ count))) )))) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 17:14 ` goncholden @ 2022-03-10 17:48 ` Eric Abrahamsen 2022-03-10 17:57 ` [External] : " Drew Adams ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: Eric Abrahamsen @ 2022-03-10 17:48 UTC (permalink / raw) To: help-gnu-emacs goncholden <goncholden@protonmail.com> writes: > ------- Original Message ------- > On Thursday, March 10th, 2022 at 3:51 PM, Robert Pluim <rpluim@gmail.com> wrote: >> > > > > > On Thu, 10 Mar 2022 15:39:03 +0100, Emanuel Berg via Users >> > list for the GNU Emacs text editor help-gnu-emacs@gnu.org said: >> >> Emanuel> angelomolina--- via Users list for the GNU Emacs text editor wrote: >> >> >> How can I make a regex string if I want to search for (. >> >> Emanuel> Uhm ... how much is a 50¢ stamp? >> >> Emanuel> (re-search-forward "(") >> >> And since youʼre searching for a literal '(', you can use >> >> `search-forward'. >> >> Robert > > Have come up with the following function. Would this be enough to count the number > oy opening parantheses in a region ? > > (defun bracketing-count (region-start region-end) > "Counts opening and closing bracketing marks. > Interactive functions enable them to be called using `M-x`" > (interactive "r") ; gets region start and end > > (message "Counting bracketing marks ...") > (save-excursion > (let (count) > (setq count 0) > (goto-char region-start) > > (while (and (< (point) region-end) > (search-forward "\(" region-end t)) > (setq count (1+ count))) )))) Not to detract from your achievement, but there's already a `count-matches' function, if you go back to using a regexp. ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [External] : Re: Making a regex string that matches ( 2022-03-10 17:14 ` goncholden 2022-03-10 17:48 ` Eric Abrahamsen @ 2022-03-10 17:57 ` Drew Adams 2022-03-10 18:54 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-10 18:03 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-11 12:24 ` Leo Butler 3 siblings, 1 reply; 12+ messages in thread From: Drew Adams @ 2022-03-10 17:57 UTC (permalink / raw) To: goncholden, Robert Pluim; +Cc: help-gnu-emacs@gnu.org > Have come up with the following function. Would this be enough to > count the number oy opening parantheses in a region ? > > (defun bracketing-count (region-start region-end) > "Counts opening and closing bracketing marks. > Interactive functions enable them to be called using `M-x`" > (interactive "r") ; gets region start and end > (message "Counting bracketing marks ...") > (save-excursion > (let (count) > (setq count 0) > (goto-char region-start) > (while (and (< (point) region-end) > (search-forward "\(" region-end t)) > (setq count (1+ count))) )))) 1. You can just use function `count-matches', with "(" as the regexp. https://emacs.stackexchange.com/q/70870/105 2. (let (count) (setq count 0)...) -> (let ((count 0)...) 3. (search-forward "(" ...) ; You don't need "\(". 4. If your user uses your command, s?he sees only the message "Counting bracketing marks...". She likely would like to see the count at the end, no? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [External] : Re: Making a regex string that matches ( 2022-03-10 17:57 ` [External] : " Drew Adams @ 2022-03-10 18:54 ` Emanuel Berg via Users list for the GNU Emacs text editor 0 siblings, 0 replies; 12+ messages in thread From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2022-03-10 18:54 UTC (permalink / raw) To: help-gnu-emacs Drew Adams wrote: > You can just use function `count-matches' [...] Fact For Fans, `count-matches' is an alias for `how-many' ... -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 17:14 ` goncholden 2022-03-10 17:48 ` Eric Abrahamsen 2022-03-10 17:57 ` [External] : " Drew Adams @ 2022-03-10 18:03 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-11 12:24 ` Leo Butler 3 siblings, 0 replies; 12+ messages in thread From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2022-03-10 18:03 UTC (permalink / raw) To: help-gnu-emacs goncholden wrote: > Have come up with the following function. Would this be > enough to count the number oy opening parantheses in > a region ? [...] (how-many "(" (point)) ; 2 (( -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 17:14 ` goncholden ` (2 preceding siblings ...) 2022-03-10 18:03 ` Emanuel Berg via Users list for the GNU Emacs text editor @ 2022-03-11 12:24 ` Leo Butler 2022-03-11 19:53 ` Emanuel Berg via Users list for the GNU Emacs text editor 3 siblings, 1 reply; 12+ messages in thread From: Leo Butler @ 2022-03-11 12:24 UTC (permalink / raw) To: help-gnu-emacs goncholden <goncholden@protonmail.com> writes: > ------- Original Message ------- > On Thursday, March 10th, 2022 at 3:51 PM, Robert Pluim <rpluim@gmail.com> wrote: >> > > > > > On Thu, 10 Mar 2022 15:39:03 +0100, Emanuel Berg via Users >> > list for the GNU Emacs text editor help-gnu-emacs@gnu.org said: >> >> Emanuel> angelomolina--- via Users list for the GNU Emacs text editor wrote: >> >> >> How can I make a regex string if I want to search for (. >> >> Emanuel> Uhm ... how much is a 50¢ stamp? Sarcasm is generally counter-productive. > > Have come up with the following function. Would this be enough to count the number > oy opening parantheses in a region ? > > (defun bracketing-count (region-start region-end) > "Counts opening and closing bracketing marks. > Interactive functions enable them to be called using `M-x`" > (interactive "r") ; gets region start and end > > (message "Counting bracketing marks ...") > (save-excursion > (let (count) > (setq count 0) > (goto-char region-start) > > (while (and (< (point) region-end) > (search-forward "\(" region-end t)) > (setq count (1+ count))) )))) In addition to other points made, your function doesn't deal with corner cases, such as \([(]+\) Should the count be 1 or 2? Leo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-11 12:24 ` Leo Butler @ 2022-03-11 19:53 ` Emanuel Berg via Users list for the GNU Emacs text editor 0 siblings, 0 replies; 12+ messages in thread From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2022-03-11 19:53 UTC (permalink / raw) To: help-gnu-emacs Leo Butler wrote: >>> How can I make a regex string if I want to search for (. >> >> Uhm ... how much is a 50¢ stamp? > > Sarcasm is generally counter-productive. It isn't sarcasm, it is a question where the answer is so obvious you get perplexed thinking there is some other layer to it ... And maybe this is what happened to the OP who didn't just try "(" but instead wrote a bunch of Elisp :) That has happened to all of us BTW, perhaps this is an extreme case tho ;) -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 13:36 Making a regex string that matches ( angelomolina--- via Users list for the GNU Emacs text editor 2022-03-10 14:39 ` Emanuel Berg via Users list for the GNU Emacs text editor @ 2022-03-10 15:13 ` Leo Butler 2022-03-11 23:43 ` Eduardo Ochs 2 siblings, 0 replies; 12+ messages in thread From: Leo Butler @ 2022-03-10 15:13 UTC (permalink / raw) To: angelomolina--- via Users list for the GNU Emacs text editor; +Cc: angelomolina angelomolina--- via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> writes: > How can I make a regex string if I want to search for (. For interactive use, the key sequence (C=Control, M=Alt/Mod): C-M s ( For programmatic use, you can use M-x regexp-builder RET to start up regexp-builder which will let you build regexps interactively and show the matches in the buffer where you were working. You will see that "(" works. C-c C-q deletes the *RE-Builder* window that was created (the buffer remains, so you can re-use it). ----- Btw, I noticed that regexp-builder is part of GNU Emacs, but there is no documentation in the manual. The only documentation is found by looking at the docstring of the function. Leo ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: Making a regex string that matches ( 2022-03-10 13:36 Making a regex string that matches ( angelomolina--- via Users list for the GNU Emacs text editor 2022-03-10 14:39 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-10 15:13 ` Leo Butler @ 2022-03-11 23:43 ` Eduardo Ochs 2 siblings, 0 replies; 12+ messages in thread From: Eduardo Ochs @ 2022-03-11 23:43 UTC (permalink / raw) To: angelomolina; +Cc: Help Gnu Emacs On Thu, 10 Mar 2022 at 11:31, angelomolina--- via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> wrote: > > How can I make a regex string if I want to search for (. On Thu, 10 Mar 2022 at 11:31, angelomolina--- via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> wrote: > > How can I make a regex string if I want to search for (. Hi Angelo, Slightly off-topic, but I learned a lot about obscure-ish regexp tricks by using rx and xr to convert regexps to the rx notation and back... see: (info "(elisp)Rx Notation") https://github.com/mattiase/xr Try: (rx "/*" (zero-or-more (or (not (any "*")) (seq "*" (not (any "/"))))) (one-or-more "*") "/") (xr "/\\*\\(?:[^*]\\|\\*[^/]\\)*\\*+/") (xr find-function-regexp) Here are some examples of things that I didn't know how to write in regexp syntax, and that I only discovered using rx: (rx (any "[]")) (rx (any "")) (rx (not (any ""))) Now let's wait for Emanuel Berg's reaction... =) Cheers, Eduardo Ochs http://angg.twu.net/#eev ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-03-11 23:43 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-03-10 13:36 Making a regex string that matches ( angelomolina--- via Users list for the GNU Emacs text editor 2022-03-10 14:39 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-10 15:51 ` Robert Pluim 2022-03-10 17:14 ` goncholden 2022-03-10 17:48 ` Eric Abrahamsen 2022-03-10 17:57 ` [External] : " Drew Adams 2022-03-10 18:54 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-10 18:03 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-11 12:24 ` Leo Butler 2022-03-11 19:53 ` Emanuel Berg via Users list for the GNU Emacs text editor 2022-03-10 15:13 ` Leo Butler 2022-03-11 23:43 ` Eduardo Ochs
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).