Jor*_*n H 1 regex objective-c nsregularexpression
我需要知道字符串是否采用以下格式:
这允许任意数量的数字,我认为它是正确的格式允许一个由句点后跟两位数组成的可选组,但由于某种原因,这不允许小数.也许十进制没有适当地转义?
@"^[0-9]+(\\.[0-9][0-9])?$"
Run Code Online (Sandbox Code Playgroud)
我试过@"^[0-9]+(\.[0-9][0-9])?$"但是Xcode抛出编译时警告:Unknown escape sequence \..
我建议使用^[0-9]+(?:\\.[0-9]{2})?$正则表达式(在Objective C中,我们需要逃避正则表达式反斜杠).
^ - 字符串开始[0-9]+ - 任意数量的数字(?:\\.[0-9]{2})? - 可选组:
\\. - 一个字面点[0-9]{2} - 正好是两位数$ - 字符串结束以下是您可以使用的示例代码(在这种情况下它将报告匹配):
NSString *pattern = @"^[0-9]+(?:\\.[0-9]{2})?$";
NSString *string = @"12345.20";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSRange textRange = NSMakeRange(0, string.length);
NSRange matchRange = [regex rangeOfFirstMatchInString:string options:NSMatchingReportProgress range:textRange];
// Did we find a matching range
if (matchRange.location != NSNotFound)
NSLog (@"YES! It is matched!");
else
NSLog (@"NO MATCH!");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3490 次 |
| 最近记录: |