Also versuche ich, alle Übereinstimmungen für eine Regex in Perl zu bekommen, aber die Ausgabe ist mit seltsamen Werten gemischt? Das ist mein Perl-Code:seltsame Ausgabe von Regex in Perl
#!/usr/bin/env perl
use strict;
use warnings;
my $filename="test.txt";
my $data;
open($data,$filename) or die "couldn't open the file";
while(<$data>)
{
chomp($_);
my @count = ($_ =~ /(((\d){1,4}(\s|\-|\.|\/)){1,3}(\d){2,4})/g);
print @count;
print "\n";
}
Und der Inhalt meiner Textdatei ist wie folgt:
content 10-12-2015
content 10 12 2015
content 10-12-2015
content 10/12/2015
content 10.12.2015
content 10.12.15
content 10.12.1412
content 1992.12.30
content 22/04/96
content 1996-04-22
content 22.04.96
content 10.12.1412
content 1992.12.30
content 22/04/96
content 04/22/96
der wirklich seltsam Ausgang ist immer sind das angepasste regex und andere Werte? im Array.
10-12-201512-2-5
10 12 201512 2 5
10-12-201512-2-5
10/12/201512/2/5
10.12.201512.2.5
10.12.1512.2.5
10.12.141212.2.2
1992.12.3012.2.0
22/04/9604/4/6
1996-04-2204-4-2
22.04.9604.4.6
10.12.141212.2.2
1992.12.3012.2.0
22/04/9604/4/6
04/22/9622/2/6
Ein Beispiel für eine normale Ausgabe wäre: 2015.10.12 aber woher dieser Wert kam aus 12-2-5? Das Problem ist, dass ich in meiner anderen Textdatei mehr als ein Datum in einer Zeile habe, was bedeutet, dass ich nicht nur die erste Übereinstimmung aus dem Array bekommen kann.
pls helfen. . . . ! bin neu bei Perl und das bringt mich um!
sehen Sie diese [IDEONE Demo] (http://ideone.com/ZOfyWR). Sie quantifizieren eine Erfassungsgruppe (1) und Sie platzieren eine Erfassungsgruppe auf ein einzelnes Zeichenmuster und quantifizieren es dann (2). –