Regex: Minuten aus Zeitangabe (09:00:00) filtern

glhlg

Mitglied
Guten Morgen,

ich habe einen String: 09:00:00 und ich möchte gerne von Uhrzeiten die Minuten ermitteln.

Code:
\d{2}          09:00:00
:\d{2}:        09:00:00

Leider weiß ich nicht, wie ich das zweite Vorkommen, oder aber einen String zwischen zwei Strings abfragen kann.


Danke schon mal für eure Hilfe!
Gruß
Gerrit
 
Moin,

ich weiß zwar nicht, was Du mit "Sonstige Sprachen" meinst resp. umd welche es konkret handelt, aber bspw. unter Java oder auch C++ gibt es die Funktion "substring", die Dir einen Teilstring liefert.

Java-Beispiel:
Java:
String sDate = "09:00:00";
String sMinuten = sDate.substring( 3, 5 );
// ergibt: sMinuten = "00";

Gruß
Klaus
 
Ansonsten. Die Klammern sind Suchresultate.....
Code:
\d{2}:(\d{2}):\d{2}

Das gibt mir leider die ganze Uhrzeit zurück. Ich möchte gerne nur die Minuten-Angabe. Also immer das, was zwischen : steht.


ich weiß zwar nicht, was Du mit "Sonstige Sprachen" meinst resp. umd welche es konkret handelt, aber bspw. unter Java oder auch C++ gibt es die Funktion "substring", die Dir einen Teilstring liefert.

Java-Beispiel:
Java:
String sDate = "09:00:00";
String sMinuten = sDate.substring( 3, 5 );
// ergibt: sMinuten = "00";

Gruß
Klaus

Explizit benötige ich das in Javascript.
Ich habe es unter "sonstige Sprachen" gepostet, da ich eine Regex suche, die mir die Minuten zurückgibt. Dass es auch mit String-Funktionen geht, ist mir klar und das bekomme ich auch ohne Weiteres hin. Ich dachte nur, ich schaue mir mal Regex an ...

Gruß
Gerrit
 
Explizit benötige ich das in Javascript.
Ich habe es unter "sonstige Sprachen" gepostet, da ich eine Regex suche, die mir die Minuten zurückgibt. Dass es auch mit String-Funktionen geht, ist mir klar und das bekomme ich auch ohne Weiteres hin. Ich dachte nur, ich schaue mir mal Regex an ...

Die String-Funktionen sind bei solchen Operationen nicht optimal. Man muß immer davon ausgehen, dass man wirklich nur einen passenden und von der Art her immer ähnlichen String hat.

So kann eine Lösung aussehen:

Code:
<script type="text/javascript">
function TesteDatum(pruefDatum)
{

      var ausdruck = /\d{1,2}\.(\d{1,2})\.\d{4}/; 
      var ergebnis = pruefDatum.match(ausdruck); 

	  alert(ergebnis[1]);
      
      return;
};  
</script>

Die Prüfung mit Hilfe des regulären Ausdrucks liefert ein Array zurück.
Das erste Element ist der gesamte Ausdruck der auf den regulären Ausdruck passt und die weiteren Elemente des Arrays sind die Ergebnisse der Klammer(n). Da wir nur eine Klammer hier haben hat das Array also zwei Elemente.
 
Zuletzt bearbeitet:
Code:
\d{2}:(\d{2}):\d{2}
Das erste Feld des Ergebnisarray ist der ganze Fund, das zweite Feld sollte nur die Minutenzahl sein.

in php mit allen Zeitfeldern (man achte auf die Klammern)
PHP:
$time="12:34:40";
preg_match_all("/(\d{2}):(\d{2}):(\d{2})/",$time,$found);

// -- Ergebnisarray
// $found[0] = "12:34:40";
// $found[1] = "12";
// $found[2] = "34";
// $found[3] = "40";

mfg chmee
 
Zurück