{n}d {n}h {n}m {n}s
으로 입력 할 수있는 문자열이 있습니다. {n}
은 일, 시간, 분, 초를 나타내는 정수입니다. 이 {n}
숫자를 문자열에서 어떻게 추출합니까?문자열의 정수 부분을 구문 분석
사용자가 4-d, h, m, s를 모두 입력 할 필요는 없습니다. 그는 단지 4d를 입력 할 수 있었는데, 4d 또는 5h 2s는 5 시간 2 초를 의미합니다.
다음은 내가 가지고있는 것입니다. 분명히 이것을 할 수있는 더 좋은 방법이 있어야합니다. 또한 모든 경우를 다루지는 않습니다.
int d; int m; int h; int sec;
string [] split = textBox3.Text.Split(new Char [] {' ', ','});
List<string> myCollection = new List<string>();
foreach (string s in split)
{
d = Convert.ToInt32(s.Substring(0,s.Length-1));
h = Convert.ToInt32(split[1].Substring(1));
m = Convert.ToInt32(split[2].Substring(1));
sec = Convert.ToInt32(split[3].Substring(1));
}
dt =new TimeSpan(h,m,s);
캡쳐되지 않은 그룹을 사용하지 않고'RegexOptions.ExplicitCapture'를 지정하면 잘됩니다 ... – Lucero
@Lucero : 와우, 뭔가를 배웠습니다. 새로운! –