* Regexp to find second of three words
@ 2006-08-07 0:51 Tim Johnson
2006-08-07 17:27 ` Eric Hanchrow
[not found] ` <mailman.4958.1154972303.9609.help-gnu-emacs@gnu.org>
0 siblings, 2 replies; 4+ messages in thread
From: Tim Johnson @ 2006-08-07 0:51 UTC (permalink / raw)
Hello:
I've constructed a regexp to use with imenu.
(note: this mailer is probably going to wrap it)
"set[ ]+'[A-Za-z0-9*-_.]+[
]\\(d\\(?:ef\\|oes\\)\\|func\\(?:tion\\)?\\|has\\|lfunc\\|sub\\)\\>"
My goal is to capture from the following example
set 'printf function
printf
but the regex is really picking up
function
I'd appreciate any help on correcting this.
Thanks
tim
--
Tim Johnson <tim@johnsons-web.com>
http://www.alaska-internet-solutions.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Regexp to find second of three words
2006-08-07 0:51 Regexp to find second of three words Tim Johnson
@ 2006-08-07 17:27 ` Eric Hanchrow
[not found] ` <mailman.4958.1154972303.9609.help-gnu-emacs@gnu.org>
1 sibling, 0 replies; 4+ messages in thread
From: Eric Hanchrow @ 2006-08-07 17:27 UTC (permalink / raw)
I probably misunderstand what you're trying to do with the stuff that
begins with \\(d\\(?:ef, but I imagine you'll be able to correct what
I've got.
(let ((p (rx "set"
(one-or-more space) "'" (group (one-or-more (or alnum (any "*-_."))))
(one-or-more space) (or "def" "does" "func" "function" "has" "lfinc" "sub")))
(input "set 'printf function"))
(string-match p input)
(match-string 1 input))
--
Rarely do we find men who willingly engage in hard, solid
thinking. There is an almost universal quest for easy answers
and half-baked solutions. Nothing pains some people more
than having to think.
-- Martin Luther King, Jr.
from "Strength to Love," 1963.
^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <mailman.4958.1154972303.9609.help-gnu-emacs@gnu.org>]
* Re: Regexp to find second of three words
[not found] ` <mailman.4958.1154972303.9609.help-gnu-emacs@gnu.org>
@ 2006-08-08 15:51 ` Tim Johnson
2006-08-09 14:22 ` Eric Hanchrow
0 siblings, 1 reply; 4+ messages in thread
From: Tim Johnson @ 2006-08-08 15:51 UTC (permalink / raw)
On 2006-08-07, Eric Hanchrow <offby1@blarg.net> wrote:
Hi Eric:
In rebol, which has some lispish features, subroutines are values, not
immutable parts of the language syntax. And can have different
rules (think pascal, => function vs. procedure)
And a subroutine can be created by the 'set function
as in
set 'printf def[ ; arguments
][;code here. variables are automatically local
]
or
set 'printf function[ ; arguments
][; local variable declared here and initialized to 'none
][;code here
]
I solved this after getting away from the computer for a while. :-)
(defconst rebol-find-set-function-regexp
(concat "set[ ]+'\\(\\<[A-Za-z0-9*-_.]+\\)[ ]\\("
;; ^ word boundary
rebol-function-names-regexp "\\)\\>")
"Regexp to find functions defined by the 'set function.")
;; by placing a word boundary before the character class
> I probably misunderstand what you're trying to do with the stuff that
> begins with \\(d\\(?:ef, but I imagine you'll be able to correct what
created by regexp-opt
> I've got.
>
> (let ((p (rx "set"
> (one-or-more space) "'" (group (one-or-more (or alnum (any "*-_."))))
> (one-or-more space) (or "def" "does" "func" "function" "has" "lfinc" "sub")))
> (input "set 'printf function"))
>
> (string-match p input)
> (match-string 1 input))
Very interesting. This is a very different approach. I will have to try to
absorb it. I think I am about to be enlighted.
Thanks very much for that example!
cheers
tim
--
Tim Johnson <tim@johnsons-web.com>
http://www.alaska-internet-solutions.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Regexp to find second of three words
2006-08-08 15:51 ` Tim Johnson
@ 2006-08-09 14:22 ` Eric Hanchrow
0 siblings, 0 replies; 4+ messages in thread
From: Eric Hanchrow @ 2006-08-09 14:22 UTC (permalink / raw)
> (let ((p (rx "set"
> (one-or-more space) "'" (group (one-or-more (or alnum (any "*-_."))))
> (one-or-more space) (or "def" "does" "func" "function" "has" "lfinc" "sub")))
> (input "set 'printf function"))
>
> (string-match p input)
> (match-string 1 input))
Very interesting. This is a very different approach.
Not really. The only difference is the syntax.
--
"New York Minute" is a textbook example of a film created as
a "vehicle" but without any ideas about where the vehicle should
go.
-- Roger Ebert
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-08-09 14:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-07 0:51 Regexp to find second of three words Tim Johnson
2006-08-07 17:27 ` Eric Hanchrow
[not found] ` <mailman.4958.1154972303.9609.help-gnu-emacs@gnu.org>
2006-08-08 15:51 ` Tim Johnson
2006-08-09 14:22 ` Eric Hanchrow
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).