Write a simple regular expression to match an IP address,
e-mail address, city-state-zipcode combination.

Answers were Sorted based on User's Feedback



Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / vyvyan

ip_pattern = r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b'

Is This Answer Correct ?    26 Yes 5 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / abhishek sagar

(/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ && $1 < 255 &&
$2 < 255 && $3 < 255 && $4 < 255 )

Is This Answer Correct ?    23 Yes 6 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / mukesh

/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/


ip=$1;

Is This Answer Correct ?    27 Yes 20 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / santosh

The question is not properly framed. A regex is specific to
a language to some extent. Lets frame it more properly and
create some test cases:
1. Writing regex for Perl to identify an IP address.
2. IP address must be a "true" IP address.
3. It must not match anything more than an IP addresses.
4. Must pass the following tests:
a)0.0.0.0: Pass: This is a valid class A address, though a
reserved address. You may not see it often but nevertheless
it is a valid address. See
http://www.lincoln.edu/math/rmyrick/ComputerNetworks/InetRef
erence/26.htm
b)1.1.1.1: Pass
c)255.255.255.255:Pass
d)1.1.1.11111:Fail
e)256.1.1.1:Fail
f)256.256.256.256:Fail
g)-1.-1.-1.-1: Fail
h).... (four dots without any digits in between)

Another test can be presence of extra zeros, which can be
fine or not fine depending upon the OS. For example
01.01.01.01 should or should not be accepted? But we will
ignore it for the time being in our analysis.

Here is an analysis of the solutions given above as well as
my additional solutions:
1. /([0-255])(\.)$1\1$1\1$1/; : This works for egrep and
possibly vi and other *nix tools such as emacs. This does
*not* work for Perl because [0-255] will match
digits '0','1', '2' and '5' only. It will not match 63.

2. /((\d{1,3})(\.)){3}\d{1,3}/: Written for Perl as
obviously {} syntax is not available for many other
scripting languages. This does not check the semantics of
IP addresses. Fails tests d, e, f above.

3. (/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ && $1 <
255 && $2 < 255 && $3 < 255 && $4 < 255 ): Is almost
correct. Only fails d in above tests. However, it uses
logical expressions and is not a pure regular expression.
Checking for word boundaries will correct it. For example,
(/\b(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\b/ && $1 <
255 && $2 < 255 && $3 < 255 && $4 < 255 ) will pass d
above.

4. r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}
(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b': Passes all the
tests. This is the best answer.

5. /^([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]
\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25
[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/: Fails
test a. But only because it was meant to eliminate 0.0.0.0.
Otherwise this is okay, though a little verbose. #4 above
can be modified slightly to take care of 0.0.0.0 case and
is less verbose.

Hope this helps.

Regards,
Santosh

Is This Answer Correct ?    7 Yes 1 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / jayakumar.b

sub validate_ip {

my $ip = shift;

if ( $ip =~ m/^([1-9]|1[0-9]{1,2}|2[0-4]\d|25[0-5])(\.([0-9]|1[0-9]{1,2}|2[0-4]\d|25[0-5])){3}$/ ) {
return 0;
} else {
return 1;
}
}

validate_ip("127.0.0.1");

Is This Answer Correct ?    4 Yes 3 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / arup

Below Solution is applicable IP only :

(/(\d{1,})\.(\d{1,})\.(\d{1,})\.(\d{1,})/ && $1<256 &&
$2<256 && $3<256 && $4<256)

Is This Answer Correct ?    1 Yes 0 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / treddy

Hi all,
Here is the regular expression for matching the valid ip
address.
^(25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})[.](25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})[.](25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})[.](25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})$

Let me know your comments.

Thanks,
TReddy

Is This Answer Correct ?    0 Yes 0 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / saravanan

$ip="0.25.55.25";

if($ip=~/([0-2]{0,1}[0-5]{0,2})\.([0-2]{0,1}[0-5]{0,2})\.([0-2]{0,1}[0-5]{0,2})\.([0-2]{0,1}[0-5]{0,2})/){
print $ip;
}

This will match for all ip address

Is This Answer Correct ?    0 Yes 0 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / tclgeek

{(^[1-9]|^[0-9][0-9]|^1[0-9][0-9]|^2[0-5][0-5])\.([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\.([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\.([0-9]$|[0-9][0-9]$|1[0-9][0-9]$|2[0-5][0-4]$)}

Is This Answer Correct ?    0 Yes 0 No

Write a simple regular expression to match an IP address, e-mail address, city-state-zipcode comb..

Answer / ajay

All those above answer are wrong...because all of them take

0.0.0.0 as valid IP address which is not the case...with
computer science ...

Developed By Anshuman sengupta

Reviewed by Arnab Bose

Tested by Avishek chatterjee

-- WHAT DORKS ! and Its tested, No wonder we need
versions/upgrades !

Is This Answer Correct ?    0 Yes 2 No

Post New Answer

More CGI Perl Interview Questions

How to convert strings into an array in perl?

0 Answers  


What does the q{ } operator do?

0 Answers  


How do I print the entire contents of an array with Perl?

0 Answers  


Give an example of using the -n and -p option.

0 Answers  


List the files in current directory sorted by size ?

0 Answers  






How do I sort a hash by the hash key?

0 Answers  


What are perl array functions?

0 Answers  


Why is it hard to call this function: sub y { "because" } ?

0 Answers  


Mention the difference between die and exit in Perl?

0 Answers  


What arguments do you frequently use for the Perl interpreter and what do they mean?

4 Answers  


In Perl, what is grep function used for?

0 Answers  


Explain cpan?

0 Answers  


Categories