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);
分享题目:IOS用正则表达式验证textfield输入的内容是否合法
当前链接:http://www.scyingshan.cn/article/jdegss.html

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