Ich bin sehr neu in der Programmierung und habe eine Frage. Ich versuche, mit der Regex-Methode Stunden, Minuten und Sekunden aus einer Zeichenfolge zu extrahieren und sie in ein Array einzufügen. Bisher kann ich dies jedoch nur mit einer Zahl tun:
int initialDay D = 0;
string startDay = Console.ReadLine(); //input: "It started 5 days ago"
var resultString = Regex.Match(startDay, @"\d+").Value;
initialDay = Int32.Parse(resultString); // initialDay here equals 5.
Wie gelingt es, aus einer Zeichenfolge 06: 11: 33 zu lesen und diese Stunden, Minuten und Sekunden in ein Array von Ints umzuwandeln? Das resultierende Array wäre also wie folgt:
int[] array = new int[] {n1, n2, n3}; // the n1 would be 6, n2 would be 11 and n3 would be 33
Vielen Dank für Ihre Zeit im Voraus!
Wenn Sie nicht versuchen, reguläre Ausdrücke zu lernen, gibt es keinen Grund für Sie, diese Analyse selbst durchzuführen.
Verwenden Sie die
TimeSpan.Parse()
Methode für diese Aufgabe.quelle
Sie können verwenden
string.Split()
, um ein Array von Elementen zu erhalten, die durch getrennt sind:
. Dann können Sieint.Parse
die Elemente durchlaufen und sie dem Integer-Array zuweisen.Oder Sie können Linqs verwenden
Select()
, um das Parsen durchzuführen.quelle
Verwenden Sie
Regex.Matches(string input, string pattern)
wie folgt:quelle
Anstelle eines regulären Ausdrucks können Sie TimeSpan.Parse () verwenden. Überprüfen Sie https://docs.microsoft.com/pl-pl/dotnet/api/system.timespan.parse?view=netframework-4.8
quelle
RegEx Weg:
Die Ausgabe:
regex101
quelle
Wenn Sie das Datum als einfache Zeichenfolge haben, können Sie die Split-Methode verwenden:
Dann können Sie mit System.Linq eine int-Liste erstellen:
quelle