Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Regular Expression Builder

by bart (Canon)
on Aug 30, 2002 at 17:41 UTC ( #194196=note: print w/ replies, xml ) Need Help??


in reply to Regular Expression Builder

Just a thought: replace all letters by "A" and all digits by "9". Then apply the Regex::PreSuf thing — or just quotemeta(). And in that result, replace "A" with '\w' and "9" with '\d'.

Intermediate steps, as an example: @foo23  ->  @AAA99  ->  \@AAA99  ->  \@\w\w\w\d\d


Comment on Re: Regular Expression Builder
Download Code
Re: Re: Regular Expression Builder
by belg4mit (Prior) on Aug 31, 2002 at 01:39 UTC
    Clever, but add the step (actually, merge it with the A9 -> metachar translation):
    s%((?:\\w)+)%'\w{'. length($1)/2 .'}'%eg; ...

    --
    perl -pew "s/\b;([mnst])/'$1/g"

Re: Re: Regular Expression Builder
by BigLug (Chaplain) on Sep 03, 2002 at 04:37 UTC
    I was going to suggest the same thing. This is similar to how the old dBase use to work with its 'patterns' to authenticate data. I can't remember it completely but I'd suggest using extra wildcards to the above:
    • A or a: Any alpha character
    • Z: Uppercase character
    • z: Lowercase character
    • 9: Numeral
    • *: Any string of characters
    • ?: Any single character
    Anything apart from the above would be a literal .. as would escaping the above with a backslash.
    ALSO: Note that /\w/ ne /a-z/i

    These combined would result in:

    USER: @foo29 RE: /\@foo2\d/ USER: @zzz99 RE: /\@[a-z]{3}\d{2}/ USER: @AAA99 RE: /\@[a-zA-Z]\d{2}/ #Note that 'A' becomes #[a-zA-Z] rather than [a-z] with /i #because there may later be a 'z' #in your users pattern :)
    The code for parsing this shouldn't be too hard to create, but I'd suggest wrapping the following comment in at an earlier stage and parsing the users pattern looking for repeats as you go.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2014-08-23 14:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (174 votes), past polls