Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: "Inverse" Pattern Matching

by LanX (Canon)
on Jul 05, 2013 at 12:18 UTC ( #1042697=note: print w/ replies, xml ) Need Help??


in reply to "Inverse" Pattern Matching

just another idea:

try to find all wildcards plus leading and following characters

/(.)x(.)/

so every real match must be of a form preceeded by 1..$1 and $2..6 in this special case.

Since you have arbitrary characters w/o real order you will need to precompile a look-up hash to find the patterns needed for $1 and $2.

e.g. 12a34a56 would lead to $pre{a}=qx/12a(34a)?/ and $post{a}=qx/(a34)?a56/ or better $post{a}=qx/(a34|a34a56)/!

the check of the hashes can be done in a while loop against $PREMATCH and $POSTMATCH or in embeded perlcode with something like (?{..})

No guaranties, I'm typing mobile and can't test ATM.

But this should be quite efficient, even for cases where x is a wildcard for more than 2 characters.

Cheers Rolf

( addicted to the Perl Programming Language)


Comment on Re: "Inverse" Pattern Matching
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (11)
As of 2014-12-25 04:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (159 votes), past polls