RegEx case

Posted on 2014-10-20
Last Modified: 2014-10-20
I want to write the most simple perl condition to test URL against, using !~ operator without using || and multiple tests.

I need something like :
if ( !~ "(www.)?")

But ..
it will return false for""       which is ok since i want only and to match.
it will return false for""                 which is ok since i want only and to match
it will return true for""           which is ok since i want only and to match
it will return false for"ANYTHING.foobarcom"           which is NOT OK since i want only and to match
Question by:Stampel
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
LVL 84

Expert Comment

ID: 40392371

Author Comment

ID: 40392531
This is not working.
I want the reg expression corrected in this expression :
 [if ( !~ "(www.)?") ]
so that it will return good values when tested against provided values in my exemple.

You can test with :
perl -e 'if ("" !~ "(www.)?") {print "TRUE\n";} else {print "FALSE\n";}'
perl -e 'if ("" !~ "(www.)?") {print "TRUE\n";} else {print "FALSE\n";}'
perl -e 'if ("" !~ "(www.)?") {print "TRUE\n";} else {print "FALSE\n";}'
perl -e 'if ("" !~ "(www.)?") {print "TRUE\n";} else {print "FALSE\n";}'
=> FALSE THIS ONE IS WRONG, Fix REGEX in the IF to make it returns TRUE
LVL 84

Accepted Solution

ozo earned 500 total points
ID: 40392555
perl -e 'if ("" !~ /^(www\.)?foobar\.com$/ ) {print "TRUE\n";} else {print "FALSE\n";}'

Author Comment

ID: 40392671
OK that make sense, i guess the problem is in my script because of " "
When used in a script i have to remove beginning and trailing "/" from input_regexp and it finally works as expected.

$input_string = $ARGV[0];
$input_regexp = '^(www\.)?foobar\.com$';
if ( $input_string !~ $input_regexp) {print "FALSE\n";} else {print "TRUE\n"};

I will test in my varnish config to see if it works as expected

Featured Post

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
Fine Tune your automatic Updates for Ubuntu / Debian
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.

724 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question