私のニーズを満たす良い正規表現を書くことができないという問題に直面しました。私はこれまで正規表現を使用したことがないので、それは私にとって大きな驚きではありませんでした。
これが私が検証しようとしている良い入力例です:
- 01
- 00:01
- 01:02:03
- 01:02:03:04-最大3つのコロンが可能
- 123,456,789-最大2つのコンマが可能
- 40000035
- 1:2:06
ここに悪いものがあります:
- 、3234
- 134,2343,333
- 000:01:00
- :01:03:00
- :01
- 01:
最初に私は少なくともすべての結腸の症例をカバーするものを書こうとしました、そしてここに私が持っているものがあります:
NSUInteger numberOfMatches = -1;
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"([([0-9]{1,2}):]{1,3})([0-9]{1,2})"
options:NSRegularExpressionCaseInsensitive
error:&error];
if (error) {
NSLog(@"error %@", error);
}
numberOfMatches = [regex numberOfMatchesInString:stringToValidate
options:0
range:NSMakeRange(0, [stringToValidate length])];
NSRegularExpressionに、ある種の配列で検証されたサブストリングを抽出するメソッドがあるかどうかも知りたいです。
例えば:
12:23:63 ---検証され、配列には[12,23,63]が含まれます
234 ---検証され、配列には[234]が含まれます
123,235,653 ---検証され、配列には[123235653]が含まれます
基本的にコロンで区切られた入力は別々の値になり、他のすべては1つの値になります