Sayed, Irfan (Irfan) wrote:
I have one variable which has the value as follows
"ccvob01 pts/2 Nov 21 12:17 (135.27.157.38 logged in ....."
Now I want only "ccvob01" from that string so I wrote reg.exp. as
follows
my ($usr1)=($usr =~ m{(.+)\S$}); where $usr contains above string.
But still I am not getting proper output.
Can somebody please guide me.
Hello Irfan
I'm not sure how you expected that to work. It captures all characters
up to but excluding a final non-space character before the end of the
line. You could try
my ($usr1) = $usr =~ /(.+?)\s/;
which captures all character from the start up to the first whitespace,
or you could just say
my ($usr1) = $usr =~ /(\S+)/;
which just finds the first sequence of non-space characters and captures
it.
Did you have any reason to use the braces for the regex delimiter
instead of the more usual slashes? It helps your codes readability if
people see what they are expecting.
HTH,
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/