Ich mag dieses
#!/usr/bin/perl
use warnings;
use strict;
my $file = 'num.txt';
open my $fh, '<', $file or die "Failed to open $file: $!\n";
while (my $line = <$fh>){
chomp $line;
my @num = $line =~ /([0-9.]+)/g;
print "On this line --- " .scalar(@num) . "\n";
}
close ($fh);
Die Eingabedatei etwas tun, würde ich getestet -
This should say 1
Line 2 should say 2
I want this line to say 5 so I have added 4 other numbers like 0.02 -1 and 5.23
Der Ausgang als getestet ----
On this line --- 1
On this line --- 2
On this line --- 5
Die Verwendung der Regex-Übereinstimmung ([0-9.] +) Stimmt mit jeder Zahl überein und enthält alle Dezimalstellen (ich nehme an, Sie könnten nur ([0-9] +) verwenden, da Sie sie nur zählen und nicht die tatsächlich dargestellte Zahl verwenden .)
Hoffe es hilft.
Hier beziehen sich die numerischen Daten auf eine Folge von Ziffern wie 1947. –
Beispieleingabe: మోతీలాల్ నెహ్రూ (ఆంగ్లం: Motilal Nehru) (మే 6, 1861 - ఫిబ్రవరి 6, 1931). భారతీయ స్వాతంత్ర్య సమర యోధుడు భారత భారత జాతీయ నాయకుడు. ఇతను, బలీయమైన రాజకీయ కుటుంబ స్థాపకుడు. Ausgabe: 4 (8.1181,6,1931) –
Bitte fügen Sie zusätzliche Informationen in der Frage, nicht in den Kommentaren. Auch die Frage ist unklar. Fragen Sie nach der Anzahl der Zeichen in Ihrer Zeile, die numerisch sind? Oder fragen Sie nach der Anzahl der verschiedenen numerischen Teilstrings, die in einer Zeile enthalten sind? –