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

Re: Reverse regexp a regexp?

by rubasov (Friar)
on Feb 13, 2010 at 00:50 UTC ( #822965=note: print w/replies, xml ) Need Help??

in reply to Reverse regexp a regexp?

I am also not sure what you exactly want to achieve by your second question, however try this:
#! /usr/bin/perl use strict; use warnings; use Regexp::Assemble; my @urls = qw( ); my $r = Regexp::Assemble->new; for (@urls) { $r->add( quotemeta ); } print $r->re, $/; __END__
output: (?-xism:http:\/\/www\.youtube\.com\/user\/test[12345])

And you may also find valuable the String-Approx distribution from CPAN which implements approximate string matching based on Levenshtein distance.

Hope this helps.

Replies are listed 'Best First'.
Re^2: Reverse regexp a regexp?
by freakingwildchild (Scribe) on Feb 13, 2010 at 23:09 UTC
    Very interesting approach of assembling regexes; although this would not generate the results required when inputting real life data like:

    my @urls = qw( );

    Which returns:

    (?-xism:http:\/\/(?:www\.youtube\.com\/user\/(?:b(?:ianca_sterlings|la +ngo)|jantje|pieter|frida)|youtube\.com\/(?:user\/(?:channel|blah)|cha +nnel\/doesntexist)))

    while it should return roughly: ^http:\/\/(?:www\.)youtube\.com\/user\/(.*)$

    What this module offers is a rather customized approach of how to create regexes on custom user data, for validation; while I'd like to create a regex on public data to extract the right set of data out of a list of url's. Thanks for letting me know this this one; it's a nice toy to play with :D

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (6)
As of 2016-10-23 10:22 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (301 votes). Check out past polls.