Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Regex switching problem

by blakem (Monsignor)
on Oct 20, 2001 at 01:57 UTC ( [id://120163]=note: print w/replies, xml ) Need Help??


in reply to Regex switching problem

This line:
my @out = split(\s(AND|OR)\s/i,$string);
looks screwy to me. Perhaps you meant:
my @out = split(/\s(AND|OR)\s/i,$string);
Update: Here is a quick rewrite that I believe does what you want...

#!/usr/bin/perl -wT use strict; my $string = "something and something else or this thing here"; my $new = join(' ', map {/^(and|or)$/ ? uc($_) : "tools.description LIKE \"%$ +_%\""} split(/\s*\b(and|or)\b\s*/,$string)); print "S:$string\n"; print "N:$new\n"; =OUTPUT S:something and something else or this thing here N:tools.description LIKE "%something%" AND tools.description LIKE "%so +mething else%" OR tools.description LIKE "%this thing here%"
Reading the complicated line from bottom to top.
  • We split the string into a list of and/or/other pieces.
  • Then convert that list using map, uppercasing and/or and putting some surrounding text around other.
  • Finally we join the list back together.

-Blake

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://120163]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (5)
As of 2024-04-23 08:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found