help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: regexp problem


From: Þorne
Subject: Re: regexp problem
Date: 12 Aug 2006 04:02:32 -0700
User-agent: G2/0.2

Pascal Bourguignon wrote:
> "Þorne" <ego111@gmail.com> writes:
>
> > Pascal Bourguignon wrote:
> >> You can match groups:
> >>
> >> a\(b\)c
> >>
> >> so the match number 0 is the whole regexp: abc
> >> but the match number 1 is only b
> >
> > Sorry to be dense, but do you mean something like this:
> >
> > (search-forward-regexp "a\\(b\\)c\\0")
>
>
> (when (search-forward-regexp "a\\(b\\)c")
>   (let ((all    (match-string 0))
>         (only-b (match-string 1)))
>     (goto-char (match-end 0))
>     (insert (format "\nall = %s\nonly-b = %s\n" all only-b))))
>
>
>
> > because i can't get anything like it to work.  I don't really follow
> > the documentation for the \<digit> construct in regexps at all...
> >
> > In fact the code above finds a string that looks like `abc0' instead of
> > just `b'.
> >
> > Specifically i am trying to make a regexp for define-generic-mode to
> > colorize the string`*' but only if it is in a string that looks like
> > `(*)'.  But not colorize the surrounding parens.
>
> Read with utmost attention the help about the variable font-lock-keywords.
>
>  (MATCHER . SUBEXP)
>
>  ("fu\\(bar\\)" . 1)  substring "bar" within all occurrences of "fubar" in
>                               the value of `font-lock-keyword-face'.

Ah!  Thank you!  Got it finally.

(Turned out specifically what i needed for doing it (with
font-lock-type-face in my case) was:

(define-generic-mode 'foo
nil nil

(list
blah-blah
  '("(\\(\\*\\))" 1 font-lock-type-face))

blah-blah))

Thanks again!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]