Thanks really

-----Original Message-----
From: Rob Dixon [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 14, 2008 6:31 PM
To: Perl Beginners
Cc: Sayed, Irfan (Cognizant)
Subject: Re: Regarding reg. exp.

[EMAIL PROTECTED] wrote:
> From: Rob Dixon [mailto:[EMAIL PROTECTED]
>> [EMAIL PROTECTED] wrote:
>>>
>>> I have a string and I need to parse that string to check whether it
is
>>> in required format or not. I have a Perl script which ask for user
>>> input. I have mentioned in the Perl script that input should be in
the
>>> following format.
>>>
>>> For example:-  1,2,3 OR 1 2 3
>>>
>>> Which means that delimiter between these figures should be comma OR
>>> space. No any other character. I need all users to adhere that and
if
>>> they not then they should exit.
>>>
>>> Can somebody please give me reg. exp. which can be used to parse the
>>> string and check whether comma OR space is there or not as a
delimiter
>>> and it should contain only numeric not alphabets.
>>
>> It is very draconian to require exactly one space or comma as
>> separators. However this will do what you ask.
>>
>> Rob
>>
>>
>> use strict;
>> use warnings;
>>
>> my $re = qr/^
>>   \d+
>>   (?:
>>    (?:,\d+)* | (?: \d+)*
>>   )
>> $/x;
>>
>> chomp (my $input = <>);
>>
>> if ($input =~ $re) {
>>   print "ok\n";
>> }
>> else {
>>   print "invalid\n";
>> }
>
> if ($trig_np =~ m/\d,{1}\d|\d\s{1}\d/)
>
> this what I did.

That is useless. If I typed

--=NONSENSE9 9NONSENSE=--

it would be accepted as valid. My code with Ruud's correction is the
simplest
way to do what you describe. Like this


  my $re = qr/^
    \d+
    (?:
      (?:,\d+)* | (?:[ ]\d+)*
    )
  $/x;

If you expect only single-digit numbers then replace '\d+' with '\d'
throughout.
If you only expect 1 through 9 then replace them with [1-9] instead.

Rob

This e-mail and any files transmitted with it are for the sole use of the 
intended recipient(s) and may contain confidential and privileged information.
If you are not the intended recipient, please contact the sender by reply 
e-mail and destroy all copies of the original message.
Any unauthorised review, use, disclosure, dissemination, forwarding, printing 
or copying of this email or any action taken in reliance on this e-mail is 
strictly
prohibited and may be unlawful.

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to