regex - Continue with newline in perl -
i have perl script this:
elsif ($url =~ m/^(http|https):\/\/(banner(s?)|advertising|iklan|adsbox|adserver|adservice(s?))\.(.*)/) { print "http:\/\/ip\.mdm\-lo\-00\.willsz\.net/null\.png\n"; }
that working redirect squid (one line), if change multiline this, absolutely not working.
elsif ($url =~ m/^(http|https):\/\/(banner(s?) \ |advertising \ |iklan \ |adsbox \ |adserver \ |adservice(s?))\.(.*)/) { print "http:\/\/ip\.mdm\-lo\-00\.willsz\.net/null\.png\n"; }
any suggestion? - thank you
you getting little carried away escapes , parentheses! , simpler change delimiter {
...}
isn't in body of pattern; don't have escape slashes
unless use /x
modifier, whitespace significant in regex pattern, including newlines, , escaping them makes no difference @ all. isn't c!
you should use non-capturing parentheses (?:...)
unless need capture substrings of matched pattern
and there no need throw-away .*
match tail of string, unless need match , capture further use
your best option use m{...}x
. can add spaces, tabs, , newlines make pattern clearer
and backslashes aren't necessary in double-quoted strings @ all, unless want add special characters \t
tab, \n
newline etc.
this code should want
elsif ( $url =~ m{ ^ https?:// (?: banners? | advertising | iklan | adsbox | adserver | adservices? ) \. }x ) { print "http://ip.mdm-lo-00.willsz.net/null.png\n"; }
Comments
Post a Comment