iOS谓词匹配字符串以及替换

1.判断某个字符串是否符合某个正则表达式,通常用这个方法:

// 判断字符串首字符是否为字母

NSString *string = @"wo";

// 1、准备正则式

NSString *regex = @"^[A-Za-z]*$"; // 只能是字母,不区分大小写

// 2、拼接谓词

NSPredicate *predicateRe1 = [NSPredicate predicateWithFormat:@"self matches %@", regex];

// 3、匹配字符串

BOOL resualt = [predicateRe1 evaluateWithObject:string];

NSLog(@"匹配结果%d", resualt);

2.但是我们开发过程中也有可能遇到这种需求,匹配字符串并且找出符合正则的字符,并替换成其他的字符显示出来,这种情况下可以用这个方法:

NSString *string = textField.text;

// 1、准备正则式

NSString *regex = @"[^\\x00-\\xff]|[\{}()/]";

NSString * replacement = @"";

//    // 创建 NSRegularExpression 对象,匹配 正则表达式

NSRegularExpression *regExp = [[NSRegularExpression alloc] initWithPattern:regex

options:NSRegularExpressionCaseInsensitive

error:nil];

NSString *resultStr = string;

// 替换匹配的字符串为 searchStr

resultStr = [regExp stringByReplacingMatchesInString:string

options:NSMatchingReportProgress

range:NSMakeRange(0, string.length)

withTemplate:replacement];

NSLog(@"\\nsearchStr = %@\\nresultStr = %@",string,resultStr);

textField.text = resultStr;

时间: 2024-08-23 01:39:41

iOS谓词匹配字符串以及替换的相关文章

iOS NSString 字符串处理:截取字符串、匹配字符串、分隔字符串

用到老是要去找,还是记下来方便!!! 1.截取字符串 NSString*string [email protected]"tate_zwt";string = [string substringToIndex:3];//截取下标7之后的字符串WTLog(@"截取的值为:%@",string); 2.匹配字符串NSString*string [email protected]"tate_zwt";NSRangerange = [stringrang

iOS之字符串处理:截取字符串、匹配字符串、分隔字符串

1.字符串的截取 //1.截取字符串 NSString *string =@"123456d890"; NSString *str1 = [string substringToIndex:5];//截取掉下标5之前的字符串 NSLog(@"截取的值为:%@",str1); NSString *str2 = [string substringFromIndex:3];//截取掉下标3之后的字符串 NSLog(@"截取的值为:%@",str2); 2

iOS:转载:IOS谓词--NSPredicate

IOS谓词--NSPredicate 分类: IOS应用2013-02-19 17:24 6792人阅读 评论(1) 收藏 举报 Cocoa 提供了NSPredicate 用于指定过滤条件,谓词是指在计算机中表示计算真假值的函数,它使用起来有点儿像SQL 的查询条件,主要用于从集合中分拣出符合条件的对象,也可以用于字符串的正则匹配.首先我们看一个非常简单的例子,对谓词有一个认知.#import <Foundation/Foundation.h>@interface Person: NSObje

js中字符串的替换

定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement)参数 描述 regexp/substr 必需.规定子字符串或要替换的模式的 RegExp 对象. 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象. replacement 必需.一个字符串值.规定了替换文本或生成替换文本的函数. 返

[ jquery 文档处理 replaceWith(content|fn) replaceAll(content) ] 此方法用于把所有匹配的元素替换成指定的HTML或DOM元素

此方法用于把所有匹配的元素替换成指定的HTML或DOM元素 content(String, Element, jQuery, Function) 用于将匹配元素替换掉的内容.如果这里传递一个函数进来的话,函数返回值必须是HTML字符串. fn 返回THML字符串,用来替换的内容. 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='descri

ios 谓词的使用

首先,我们需要知道何谓谓词,让我们看看官方的解释: The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering. NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索.可以使用谓词来表示逻辑条件,用于描述对象持久性存储在内存中的对象过滤.其实意思就是:我是一个过滤器,不符合条件

java字符串的替换replace、replaceAll、replaceFirst的区别详解

如果不是刚刚复习了下正则表达式,我可能也不会注意到,原来String的replaceAll跟replaceFirst用到了正则表达式! 不多解释,看代码: 1 2 3 4 String s = "my.test.txt"; System.out.println(s.replace(".", "#")); System.out.println(s.replaceAll(".", "#")); System.o

字符串 批量 替换 问题

字符串批量替换的的解决办法: Replace Str.replace(),Str.replace(),Str.replace(),Str.replace(),......., 分析:适应于少数的几个替换场景,如果需要上千次的替换,你会发现很慢,且不适合于一个关键词匹配多次的情况 正则替换 System.Text.RegularExpressions.Regex.Replace("",""); 第三方组件

实现字符串中子字符串的替换2&mdash;&mdash;待替换字符串和替换字符串的长度可以不相等

//使用C语言实现字符串中子字符串的替换 //描述:编写一个字符串替换函数,如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace), //strSrc为原字符串,strFind是待替换的字符串,strReplace为替换字符串. //举个直观的例子吧,如:"ABCDEFGHIJKLMNOPQRSTUVWXYZ"这个字符串,把其中的"RST"替换为"ggg"这个字符串, //结