Hello rad_144, and welcome to the Monastery!

For finding the longest common substring, see the thread finding longest common substring which I referenced in my recent post Re^13: partial match between 2 files.

Update (1st January, 2013): After the comedy of errors documented in the updates to Re^13: partial match between 2 files, I finally came up with a solution using my own advice:

#! perl use Modern::Perl; my @paths = ( '/home/instance/domains/abcd/xyz/1.txt', '/a1234/domains/abcd/xyz/1.txt', '/a1234/topfolder/instance/domains/abcd/xyz/1.txt', # '/a1234/topfolder/instance/domains/abcd/xyz/2.txt', ); my $lcss = lcss($paths[0], $paths[1]); my $found = defined $lcss && $paths[0] =~ / \Q$lcss\E $ /x && $paths[1] =~ / \Q$lcss\E $ /x; if ($found) { for (@paths[2 .. $#paths]) { $lcss = lcss($lcss, $_); unless ($lcss && / \Q$lcss\E $ /x) { $found = 0; last; } } } say $found ? 'Found common path+file: ' . $lcss : 'No common path+file found'; # lcss() was written by BrowserUk, see [id://308451] sub lcss { my $strings = join "\0", @_; my $lcss; for my $n (1 .. length $strings) { my $re = "(.{$n})" . '.*\0.*\1' x (@_ - 1); last unless $strings =~ $re; $lcss = $1; } return $lcss; }

Uncomment the 4th path, and the match fails, as it should.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,


In reply to Re: Is there any API available in perl to find longest common substring from two strings by Athanasius
in thread Is there any API available in perl to find longest common substring from two strings by rad_144

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.