Regex alone: /\{([^\}]*)\}/g
notice the g at the end - without it the regex would return a scalar with
text1 in it
Regex basically says: find a string that starts with { and ends with } but
does not have any }'s in the middle (avoids greedy matches - if you use .*
instead of [^\}]* you would get everything from the first { to the last })

Regex in action:

#!/usr/bin/perl

my $str = 'this is some {text1}. this is more {text2}. and yet some more
{text3}.';

my @results = $str =~ /\{([^\}]*)\}/g;

# displays text3 (last match found)
print "$1\n";

# displays text1, text2 and text3
foreach $result (@results)
{
        print $result."\n";
}

James

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of John Hebert
Sent: Tuesday, August 03, 2004 9:20 AM
To: [email protected]
Subject: [brlug-general] noob regex question

Howdy,

I have a bunch of text with multiple tokens in it demarcated by { and }.

Sample text:
this is some {text1}. this is more {text2}. and yet some more {text3}.
blahdeblah.

What would a regular expression to get these tokens out of the text look
like, in a Perl script, say?

Thanks,
John


                
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 

_______________________________________________
General mailing list
[email protected]
http://brlug.net/mailman/listinfo/general_brlug.net

Reply via email to