Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re: How can grep search based on text or pattern based on user input?

by dchetlin (Friar)
on Dec 04, 2000 at 11:44 UTC ( #44757=note: print w/replies, xml ) Need Help??

in reply to How can grep search based on text or pattern based on user input?

`grep' in Perl is a misnomer; it's not inherently related to RExen. It should really be named `filter' or something similar. As such, using a bare variable as the `EXPR' in grep EXPR, LIST won't invoke the REx engine at all -- basically you're checking $searchtext for truth each time through the `LIST', which is most certainly not WYM.

My personal vote on this problem would be to provide the users a radio button group allowing them to choose whether they want to use Perl-based or standard search-engine searches, rather than trying to come up with a heuristic to determine if $searchtext is a Perl REx or just a term.

However, if you really want to do that, you'll want to look into `\Q' and `\E' to quote characters in a REx, rather than going to all that trouble (on line 4) to take care of metacharacters. I'm skeptical of the conversion from `*' to `\w*', but I suppose it's a sensible choice.

Rather than trying to build up a string that syntactically resembles a REx in Perl code, build the actual search pattern and then use it in the grep inside of a REx:

grep m/$searchtext/, <STUFF>

You might also want to look into qr// for a more efficient and cleaner way to build RExen programatically.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://44757]
[Discipulus]: 2 weekends ago LanX
[Lotus1]: cb is nsfw this morning
[Lotus1]: I wonder if ascii art would work in the cb....
[jedikaiti]: lolol
Tux looks up his status to find being an Abbot
[choroba]: pm-cb-g now shows the number of unread messages, commit on its way to github
[Tux]: choroba any plans for highlight patterns?
[choroba]: Tux feel free to submit a pull request :-)
[choroba]: I like the idea, but currently I only have time for small changes

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (13)
As of 2017-09-20 16:04 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (237 votes). Check out past polls.