Using regular expression in perl - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Using regular expression in perl

ApplellialApplellial Posts: 21Member
Hello Guys,

Sorry, I am not sure if this thread belongs here.
I am new to perl and writing a regex for identifying if the user input lies in the set [0,100), i.e. the number must lie between 0-100, 0 included. It can be of form 0.000001, .00001, 90, 90.999153263, .12 etc
Following is the regex I wrote: $input =~ /dd?.d+|(dd?|.d+)/, but I am not gettinh the result. Can someone help me in this? Thanks in advance.

Comments

  • TrizenTrizen Posts: 5Member
    A powerful way of doing this is

    [code]my $number = 0.4e2;

    if ($number =~ /^([+-]?)(?=d|.d)d*(.d*)?([Ee]([+-]?d+))?$/) {
    # my $number = eval $&; # I don't know if you really need this
    if ($number >= 0 and $number <= 100) {
    print "$number is >= 0 but <= 100
    ";
    }
    else {
    print "$number is NOT between 0 and 100
    ";
    }
    }
    else {
    print "Invalid number input: $number
    ";
    }[/code]

    or a simpler way:

    [code]my $number = 52.9923;
    if ($number >= 0 and $number <= 100) {
    print "$number is >= 0 but <= 100
    ";
    }
    else {
    print "$number is not between 0 and 100
    ";
    }[/code]

    You can remove '=' sign from 'greater/lower' signs if don't want to include 0 and 100.

Sign In or Register to comment.