Ich möchte alle drei Zahlen durch Komma abgegrenzt und kann beginnen und enden mit Klammern.Split drei Integer aus Text mit Regex C#
Valid Beispiele sind: {30,40,50}, [30,40,50], (30,40,50) bzw. 30,40,50
möglich, auch 30, 40,50 (Mittel können Leerzeichen nach Kommata sein, bevor einer der drei Zahlen)
Nicht gültig Beispiele sind: {30,40,50 oder {30,40,50]
und ich möchte nach dem spalten nur die Integres.
Ich habe versucht:
Regex regex = new Regex(@"({|(|[)?\d+,\d+,\d+({|(|[)?");
Match match = regex.Match(laticeDim.Text);
if (match.Success)
{
int[] integers = laticeDim.Text.Trim('{', '}', '[', ']', '(', ')').Split(',')
.Select(s => Convert.ToInt32(s))
.ToArray();
}
Aber ich habe Zeitfehler auf der ersten Codezeile oben laufen.
Irgendwelche Vorschläge? Was ist der beste Weg, um einen solchen Ausdruck zu finden?
Try [ '{( \ d + (:, \ d +) {2}?)} | \ [? ( \ d + (?:? \ D +) {2})] | \ (( \ d + (?:, \ d +) {2}) \) | (? \ d + (?:, \ d +) {2}) \ b (?! [ ])}]) '] (http: //regexstorm.net/tester? p =% 7b \ (% 3f% 3cval% 3e% 5cd% 2b \ (% 3f% 3a% 2c% 5cd% 2b \)% 7b2 % 7d%)% 7d% 7c% 5c% 5b% (% 3f% 3cval% 3e% 5cd% 2b \ (% 3f% 3a% 2c% 5cd% 2b \)% 7b2% 7d%)% 5d% 7c% 5c \ (\ (% 3f% 3cval% 3e% 5cd% 2b \ (% 3f% 3a% 2c% 5cd% 2b \)% 7b2% 7d \)% 5c \)% 7c \ (% 3f% 3c!% 5b% 5b \ (% 7b% 5d \)% 5cb \ (% 3f% 3cval% 3e% 5cd% 2b \ (% 3f% 3a% 2c% 5cd% 2b \)% 7b2% 7d \)% 5cb (% 3f!% 5b% 5d \)% 7d% 5d \) & i = +% 7b30% 2c40% 2c50% 7d +% 5b30% 2c40% 2c50% 5d + \ (30% 2c40% 2c50 \) ++ 30% 2c40% 2c50 % 0d% 0a% 7b30% 2c40% 2c50 + oder +% 7b30% 2c40% 2c50% 5d) .Verwenden 'match.Groups [" val "]. Wert' –