2017-05-21 4 views
0

Ich habe eine große Textdatei Hexe haben Strings und Zahlen in diesem Format:Holen Sie sich jede Zeile, die Anzahl Wert von mehr als 0,1 von Textdatei hat

firstname 0.6 2 lastname 
firstname 0.6 2.25 lastname 
firstname 0.000 0.0002 lastname 

ich nur die Zeilen mit doppeltem Wert kopieren mag, dass größer als 0.1 in diesem Beispiel i die zweizeilige kopieren würde:

firstname 0.6 2 lastname 
firstname 0.6 2.25 lastname 

und speichern sie sie in einer Datei. Ich versuchte mit filter_var Funktion, aber ich konnte sie nicht extrahieren.

$c = filter_var($str, FILTER_SANITIZE_NUMBER_INT); 
+0

Zeigen Sie uns den Code, den Sie geschrieben haben. Eine Zeile reicht nicht aus, um den Code zu debuggen – RiggsFolly

Antwort

1

die Linien mit doppeltem Wert, der größer ist als 0,1

ist

Die Lösung file und preg_grep unter Verwendung von Funktionen (nur passende Zeilen-Filter):

$lines = file("yourfile.txt", FILE_IGNORE_NEW_LINES); 
$result = preg_grep('/.*\b(0\.[2-9][0-9]*|[1-9][0-9]*\.[0-9]+)\b.*/', $lines); 

print_r($result); 

The Ausgabe (für Testeingabefragment):

Array 
(
    [0] => firstname 0.6 2 lastname 
    [1] => firstname 0.6 2.25 lastname 
) 

  • .* - jedes Zeichen

  • (0\.[2-9][0-9]*|[1-9][0-9]*\.[0-9]+) - stellt sicher, dass die Linie Float-Zahlen größer als 0.1 enthält.

Verwandte Themen