其实我已经试过以下的东西,它的工作正常。我认为问题与你相关,你期望线路以数字开始,并以匹配数字结束,所以可能是一个问题。在这里我尝试了以下事情。
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