in reply to
Re: Using special characters in left part of a regex match?
in thread Using special characters in left part of a regex match?
Thank you so much Ken! This is amazing. As for your first comment, I might want to compare all the fragments with each other, which is a very hard job. As a work around, I added a (clumsy) piece of code to yours, so that the script picks up the most complete string as the reference one -- meaning the string which contains most words. Here is the code:
#!/usr/bin/env perl
@exemplars = <DATA>;
foreach $line (@exemplars) {
@words = split (/\s+/, $line);
$array[$#words] = $line;
}
@array = sort { $a <=> $b } @array;
$reference = $array[-1];
print "Reference string: $reference";
for (@exemplars) {
$exemplar = $_;
s/[.]{3}/.+?/g;
if ($reference !~ /$_/) {
print "NO MATCH: $exemplar";
}
}
__DATA__
Gallia est omnis divisa in partes tres
Gallia est omnis divisa in ...
Gallia est omnis ...
Gallia
... omnis divisa in ...
... in ...
... est ...
Gallia est ... tres
Gallia ... partes tres
Gallia est ... partes tres
Gallia ... divisa ... tres
... tres
quattuor
Gallia ...
Output is the same as yours. I will run some tests, and see what happens.