ozboomer has asked for the wisdom of the Perl Monks concerning the following question:
Please consider the following code:-
$sample = "A-E-H-L"; @options = ( "A-B-F-G-H-K-M", # idx = 0 "A-E-G-H-L", # idx = 1 "A-C-E-G-H-J-L", # idx = 2 "B-F-H-K", # idx = 3 "A-B-F-G-H-K-L", # idx = 4 "C-H" # idx = 5 ); $mc = "[A,E,H,L]"; @matches = grep(/$mc/, @options); foreach $x (@matches) { printf("> %s\n", $x); }
The intention is to find each of the elements in @options that includes all of the elements in $sample. The hyphens ("-") are sort-of important, mainly because they are delimiters between each 'sub-element'.
The code I've shown obviously doesn't work -- I was trying to establish a 'class' for a regex -- but let me explain it using the contents of $sample:...
For the example of "A-E-H-L", I'm looking in the @options array for those elements that contain "A" and "E" and "H" and "L". If $options[$i] contains all of those items ("A", "E", etc), then it will be recorded as a match. Thus, the @matches array should, ideally contain the elements:-
@matches = (1,2);
Note that the elements of $sample will always be in 'increasing' order (the data could be "A-F-H" but it won't be "H-A-F").
An interesting generalization of this would be to match on a subset of $sample. For example, if we allow a subset of elements from $sample to match, we would have the resulting @matches = (0,1,2,3,4,5).
There are probably a lot of other options that could be considered... but this is a good start, I think.
Would appreciate any pointers, please...
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Pattern Matching with a Selected Sub-String
by choroba (Cardinal) on Jul 27, 2012 at 00:17 UTC | |
|
Re: Pattern Matching with a Selected Sub-String
by toolic (Bishop) on Jul 27, 2012 at 00:24 UTC | |
|
Re: Pattern Matching with a Selected Sub-String
by tobyink (Canon) on Jul 27, 2012 at 06:25 UTC | |
|
Re: Pattern Matching with a Selected Sub-String
by Anonymous Monk on Jul 27, 2012 at 00:17 UTC | |
|
Re: Pattern Matching with a Selected Sub-String
by Marshall (Canon) on Jul 27, 2012 at 12:34 UTC | |
|
Re: Pattern Matching with a Selected Sub-String
by Kenosis (Priest) on Jul 27, 2012 at 17:09 UTC | |
|
Re: Pattern Matching with a Selected Sub-String
by AnomalousMonk (Archbishop) on Jul 28, 2012 at 04:42 UTC | |
|
Re: Pattern Matching with a Selected Sub-String
by ozboomer (Friar) on Jul 28, 2012 at 01:20 UTC |