iphone 4.0以后就开始支持正则表达式的使用了,在ios4.0中正则表达式的使用是使用NSRegularExpression类来调用。

1. 下面一个简单的使用正则表达式的一个例子:NSRegularExpression 类
-(void)parseString{
//组装一个字符串,需要把里面的网址解析出来
NSString *urlString=@"sfdsfhttp://www.baidu.com";
//NSRegularExpression类里面调用表达的方法需要传递一个NSError的参数。下面定义一个
NSError *error;
//http+:[^\\s]* 这个表达式是检测一个网址的。
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"http+:[^\\s]*" options:0 error:&error];
if (regex != nil) {
NSTextCheckingResult *firstMatch=[regex firstMatchInString:urlString options:0range:NSMakeRange(0, [urlString length])];
if (firstMatch) {
NSRange resultRange = [firstMatch rangeAtIndex:0]; //等同于 firstMatch.range --- 相匹配的范围
//从urlString当中截取数据
NSString *result=[urlString substringWithRange:resultRange];
//输出结果
NSLog(@"%@",result);
}
}
}
2.使用正则表达式来判断
//初始化一个NSRegularExpression 对象,并设置检测对象范围为:0-9
NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]*$" options:0 error:nil];
if (regex2)
{//对象进行匹配
NSTextCheckingResult *result2 = [regex2 firstMatchInString:textField.text options:0 range:NSMakeRange(0, [textField.text length])];
if (result2) {
}
}
- 1。 判断邮箱格式是否正确的代码:NSPredicatel类 - //利用正则表达式验证 - NSPredicatel类:主要用来指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。谓词是指在计算机中表示计算真假值的函数。原理和用法都类似于SQL查询中的where,作用相当于数据库的过滤取。主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配 - -(BOOL)isValidateEmail:(NSString *)email - { - NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; - NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex]; - return [emailTest evaluateWithObject:email]; - } 
- 2 。 匹配9-15个由字母/数字组成的字符串的正则表达式: 
 NSString * regex = @"^[A-Za-z0-9]{9,15}$";
 NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
 BOOL isMatch = [pred evaluateWithObject:txtfldPhoneNumber.text];- Cocoa用NSPredicate描述查询的方式,原理类似于在数据库中进行查询 - 用BETWEEN,IN,BEGINWITH,ENDWITH,CONTAINS,LIKE这些谓词来构造NSPredicate,必要的时候使用SELF直接对自己进行匹配 - [cpp] 
 //基本的查询
 NSPredicate *predicate;
 predicate = [NSPredicate predicateWithFormat: @"name == 'Herbie'"];
 BOOL match = [predicate evaluateWithObject: car];
 NSLog (@"%s", (match) ? "YES" : "NO");
 //在整个cars里面循环比较
 predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];
 NSArray *cars = [garage cars];
 for (Car *car in [garage cars]) {
 if ([predicate evaluateWithObject: car]) {
 NSLog (@"%@", car.name);
 }
 }
 //输出完整的信息
 predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];
 NSArray *results;
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 //含有变量的谓词
 NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"name == $NAME"];
 NSDictionary *varDict;
 varDict = [NSDictionary dictionaryWithObjectsAndKeys:
 @"Herbie", @"NAME", nil];
 predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];
 NSLog(@"SNORGLE: %@", predicate);
 match = [predicate evaluateWithObject: car];
 NSLog (@"%s", (match) ? "YES" : "NO");
 //注意不能使用$VARIABLE作为路径名,因为它值代表值
 //谓词字符窜还支持c语言中一些常用的运算符
 
 predicate = [NSPredicate predicateWithFormat:
 @"(engine.horsepower > 50) AND (engine.horsepower < 200)"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"oop %@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name < 'Newton'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", [results valueForKey: @"name"]);
 //强大的数组运算符
 predicate = [NSPredicate predicateWithFormat:
 @"engine.horsepower BETWEEN { 50, 200 }"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 NSArray *betweens = [NSArray arrayWithObjects:
 [NSNumber numberWithInt: 50], [NSNumber numberWithInt: 200], nil];
 predicate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN %@", betweens];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 predicateTemplate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN $POWERS"];
 varDict = [NSDictionary dictionaryWithObjectsAndKeys: betweens, @"POWERS", nil];
 predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 //IN运算符
 predicate = [NSPredicate predicateWithFormat: @"name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", [results valueForKey: @"name"]);
 predicate = [NSPredicate predicateWithFormat: @"SELF.name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", [results valueForKey: @"name"]);
 
 names = [cars valueForKey: @"name"];
 predicate = [NSPredicate predicateWithFormat: @"SELF IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
 results = [names filteredArrayUsingPredicate: predicate];//这里限制了SELF的范围
 NSLog (@"%@", results);
 //BEGINSWITH,ENDSWITH,CONTAINS
 //附加符号,[c],[d],[cd],c表示不区分大小写,d表示不区分发音字符,cd表示什么都不区分
 predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'Bad'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'HERB'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH[cd] 'HERB'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 //LIKE运算符(通配符)
 predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '*er*'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '???er*'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);- //基本的查询 
 NSPredicate *predicate;
 predicate = [NSPredicate predicateWithFormat: @"name == 'Herbie'"];
 BOOL match = [predicate evaluateWithObject: car];
 NSLog (@"%s", (match) ? "YES" : "NO");
 //在整个cars里面循环比较
 predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];
 NSArray *cars = [garage cars];
 for (Car *car in [garage cars]) {
 if ([predicate evaluateWithObject: car]) {
 NSLog (@"%@", car.name);
 }
 }
 //输出完整的信息
 predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];
 NSArray *results;
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 //含有变量的谓词
 NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"name == $NAME"];
 NSDictionary *varDict;
 varDict = [NSDictionary dictionaryWithObjectsAndKeys:
 @"Herbie", @"NAME", nil];
 predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];
 NSLog(@"SNORGLE: %@", predicate);
 match = [predicate evaluateWithObject: car];
 NSLog (@"%s", (match) ? "YES" : "NO");
 //注意不能使用$VARIABLE作为路径名,因为它值代表值
 //谓词字符窜还支持c语言中一些常用的运算符
 
 predicate = [NSPredicate predicateWithFormat:
 @"(engine.horsepower > 50) AND (engine.horsepower < 200)"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"oop %@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name < 'Newton'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", [results valueForKey: @"name"]);
 //强大的数组运算符
 predicate = [NSPredicate predicateWithFormat:
 @"engine.horsepower BETWEEN { 50, 200 }"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 NSArray *betweens = [NSArray arrayWithObjects:
 [NSNumber numberWithInt: 50], [NSNumber numberWithInt: 200], nil];
 predicate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN %@", betweens];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 predicateTemplate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN $POWERS"];
 varDict = [NSDictionary dictionaryWithObjectsAndKeys: betweens, @"POWERS", nil];
 predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 //IN运算符
 predicate = [NSPredicate predicateWithFormat: @"name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", [results valueForKey: @"name"]);
 predicate = [NSPredicate predicateWithFormat: @"SELF.name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", [results valueForKey: @"name"]);
 
 names = [cars valueForKey: @"name"];
 predicate = [NSPredicate predicateWithFormat: @"SELF IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];
 results = [names filteredArrayUsingPredicate: predicate];//这里限制了SELF的范围
 NSLog (@"%@", results);
 //BEGINSWITH,ENDSWITH,CONTAINS
 //附加符号,[c],[d],[cd],c表示不区分大小写,d表示不区分发音字符,cd表示什么都不区分
 predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'Bad'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'HERB'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH[cd] 'HERB'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 //LIKE运算符(通配符)
 predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '*er*'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
 
 predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '???er*'"];
 results = [cars filteredArrayUsingPredicate: predicate];
 NSLog (@"%@", results);
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
新闻标题:IOS用正则表达式验证textfield输入的内容是否合法-创新互联
地址分享:http://www.cqwzjz.cn/article/dsdcjc.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 