其實我已經試過以下的東西,它的工作正常。我認爲問題與你相關,你期望線路以數字開始,並以匹配數字結束,所以可能是一個問題。在這裏我嘗試了以下事情。
NSString* aString = @"8 iokdsa da 12. dasdsadaasd 8.3 cccc 8.10. rrr 8.2.5 rrrrr 8.2.28.";
NSRegularExpression* tableRegex = [[NSRegularExpression alloc] initWithPattern:@"(\\d+)(?:\\.(\\d+)){0,2}(?:\\.)?" options:0 error:NULL] ;
[tableRegex enumerateMatchesInString:aString options:0 range:NSMakeRange(0, [aString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
NSLog(@"Print : %@",[aString substringWithRange:match.range]);
}];
輸出:
打印:8
打印:12.
打印:8.3
打印:8.10。
打印:8.2.5
印:8.2.28。
如果你想就這樣結束關鍵字匹配然後貼在$上面表達的結束就像下面簽名。
(\\d+)(?:\\.(\\d+)){0,2}(?:\\.)?$
希望這對你有所幫助。
你在尋找匹配的結束字符串從整個字符串?或匹配任何位置的整個字符串中的任何數字字符串? –
@無:我只想匹配只包含一個版本號的字符串。我寫的第一個模式效果很好,我只是想將其改進得更短,更具可讀性。 –
它工作.'https:// www.regex101.com/r/fJ6cR4/4' – vks