If you have a definitive list of delimiters as it appears you do, then grab all characters that are not in that list from the beginning of the string. I haven't tried this but it should work.
<--
$str = '[EMAIL PROTECTED];[EMAIL PROTECTED]';
if($str =~ /^([^\;\,\s\-\_]+)/) {
$email = $1;
}
Regards,
Mike
-----Original Message-----
From: Vitaly Sinitsin [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, October 02, 2002 9:42 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: RE: regular expression question
forget to mention: ';' isn't a delimiter, the idea is to get the first
email only! even if there are more. And emails can be separated by the
following signs only:
';' ',' '(' ')' 'white space' '-' '_'
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of
[EMAIL PROTECTED]
Sent: Wednesday, October 02, 2002 2:32 PM
To: Vitaly Sinitsin; [EMAIL PROTECTED]
Subject: RE: regular expression question
Hi,
This script works
<--
for ('"[EMAIL PROTECTED];[EMAIL PROTECTED]')
{
/^(.*);(.*)$/;
print $1 . "\n";
}
-->
Another way could be
<--
@array = split /;/, '"[EMAIL PROTECTED];[EMAIL PROTECTED]';
print $array[0];
-->
And so many other...
Olivier Gerault
_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
