On Wed, 18 Sep 2002, Panel Vincent - A53 wrote:

> I have a problem with a regular expression :
> 
> I process a text file with a list of names.
> 
> I would like to reformat names like
> 
>   Francois de   la Varenne
> Macha Meril 
> Buzz    Mac Cormack
> 
> (there must be at least two words in the name)
> to something like this :
> 
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> 
> In other words : "[EMAIL PROTECTED]".
> 
> I tried the following thing and it doesn't work ($name already contains one
> of those names) :
> 
> $name=~s/\s*(\w+)\s+(\w+)(\s+(\w+))*\s*/$1.$2$3\@domain.top/

Use split instead of a regexp (perldoc -f split)
Let us assume the input string is in $str, this should do the job for you

my ($first, $rest) = split (/\s+/, $str, 2);
$rest =~ s/\s+//g;
print "$first.$last\@domain.top";



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to