Re: looking-back
Andreas Röhler <[email protected]> Sat, 1 Aug 2026 19:55:40 +0200
| Newsgroups | gmane.emacs.help |
|---|---|
| Message-ID | <[email protected]> |
Am 01.08.26 um 19:14 schrieb Jean Louis: > * Andreas Röhler <[email protected]> [2026-08-01 15:56]: >> Hi, >> >> >> want to match an opening paren followed by a whitespace. Tried the forms >> below without success. >> Any suggestion >> >> ( (looking-back "\\\\( +" (line-beginning-position) t) ==> nil >> ( (looking-back (regexp-quote (rx "(" (+ space))) (line-beginning-position) >> t) ==> nil > ;; Step 1: Type this literal text on a new line (without quotes or backslash): > ( hello) > > So you need to place cursor after space like where is "h" in hello and > evaluate: (looking-back "( +" (line-beginning-position) t) > > So it gives me true at h. But not if I press cursor at "e" in hello > above. > > You probably wanted to lookback longer than that... > > ( (re-search-backward (rx "(" (+ space)) (line-beginning-position) t) => 706 so this one would put cursor backwords... on the "( " > > > ( (save-excursion (when (re-search-backward "( +" (line-beginning-position) t) (match-string 0))) ⇒ #("( " 0 2 (face font-lock-string-face fontified t)) > > (save-excursion (when (re-search-backward "( +" (line-beginning-position) t) (substring-no-properties (match-string 0)))) ⇒ "( " > > (save-excursion (when (re-search-backward "( +" (line-beginning-position) t) (list (match-string-no-properties 0) (match-beginning 0) (match-end 0)))) ⇒ ("( " 1166 1168) > > means finding this one ^^^^^ > > > (save-excursion > (when (re-search-backward "( +" nil t) ; nil = no limit > (list (match-string-no-properties 0) > (match-beginning 0) > (match-end 0)))) ⇒ ("( " 1389 1391) > Looks like a bug for me. re-search-backward below stops at the "(" in the regexp itself, not at BOL as expected. ( (re-search-backward "( +" (line-beginning-position) t 1)