[REBOL] Re: Another question
From: greggirwin:mindspring at: 14-Feb-2002 12:43
Hi Alex,
<< I'm trying to figure out parse... how, for instance, would I use a parse
expression to break some text into words, which are grouped with quotation
marks (so you could make "foo bar" one word), but quotation marks preceded
by a backslash are treated as normal text?
Hello world,
I said -> ["Hello world", "I", "said"] >>
Do you need to escape the quotes (i.e. is there source data that contains
them)? If not, parse's behavior should be pretty darn close:
>> parse {"Hello world," I said} none
== ["Hello world," "I" "said"]
Hmmm. If the escapes exist, you might also just replace them:
>> parse replace/all {\"Hello world,\" I said} {\"} {"} none
== ["Hello world," "I" "said"]
Though that still removes them from the text. You'll probably have to write
some rules if that doesn't work for you.
<< Also, how would I match on a left bracket, any member of a block, and
then a
right bracket? Here's a pseudocode example:
[
FOLLOWED BY ("red" OR "green" OR "blue") FOLLOWED BY "]" >>
Can you use block parsing? REBOL can recognize things for you in mnay cases.
>> parse [[blue]] [set b block!]
== true
>> b
== [blue]
--Gregg