[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!