ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:19.99KB ,
资源ID:5380221      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5380221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(推荐下载iOS中正则表达式的基本使用方法.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

推荐下载iOS中正则表达式的基本使用方法.docx

1、推荐下载iOS中正则表达式的基本使用方法iOS 中正则表达式的基本使用方法一.第三方框架 RegexKitLite 的使用 在 ios 项目中可以借用第三方框架 RegexKitLite 来简化对正则表达式的使用,使用方法如下1.去 RegexKitLite 下载类库,解压出来会有一个例子包及 2 个文件,将那两个文件添加到工程中,并导入到项目中。 下载地址:cocoachina/bbs/job.php?action-download-pid-135286-tid-18111-aid-11143.html - Lv2.工程中添加 libicucore.dylib frameworks。下面就是

2、使用介绍(可拷贝到 Xcode 中观看会很方便)- (void)howToUseRegexKitLite NSString *searchString = ”我正在#话题#吃饭zhangsan 你lisi 吃了没?”; NSString *regexString = ”w+”; / 返回所有匹配成功的结果,并存放到一个数组里 NSArray *array = searchString componentsMatchedByRegex:regexString; NSLog(”array:%”,array); / 输出结果: (“zhangsan”,”lisi”) / 透过传入一个 Regex 进

3、行字符串的比对,并且会将第一组比对出来的结果以NSArray 回传群组 NSArray *array1 = searchString captureComponentsMatchedByRegex:regexString; NSLog(”array1:%”,array1); / 输出结果: (“zhangsan”) / 同上者,一样会回传 Regex 所比对出来的字符串群组,但会回传全部的配对组合 NSArray *array2 = searchStringarrayOfCaptureComponentsMatchedByRegex:regexString; NSLog(”array2:%”,

4、array2); / 输出结果: (“zhangsan”),(“lisi”) / 判断字符串是否与 Regex 配对 BOOL isMatched = ”zhangsan” isMatchedByRegex:regexString; if (isMatched) NSLog(”配对成功”); / 取得配对出来的第一個完整字串 NSString *matchedString1 = searchString stringByMatching:regexString; NSLog(”matchedString1:%”,matchedString1); / 输出结果: zhangsan / 将字符串中

5、与 Regex 配对的结果进行替换 NSString *replaceString = ”wangwu”; NSString *matchedString2 = searchStringstringByReplacingOccurrencesOfRegex:regexString withString:replaceString; NSLog(”matchedString2:%”,matchedString2); / 输出结果: 我正在#话题#吃饭 wangwu 你 wangwu 吃了没? / 如果是 NSMutableString,则可以直接替换,并返回替换的次数 NSMutableStri

6、ng *mutSearchString = NSMutableString stringWithString:”我正在#话题#吃放zhangsan 你lisi 吃了没?”; NSInteger mutMatchedString2 = mutSearchStringreplaceOccurrencesOfRegex:regexString withString:replaceString; NSLog(”mutMatchedString2:%ld”,mutMatchedString2); / 输出结果: 2 / 返回一个拆分后的字符串数组 NSArray *array3 = searchStri

7、ng componentsSeparatedByRegex:regexString; NSLog(”array3:%”,array3); / 输出结果: (“我正在#话题#吃饭”,” 你”,” 吃了没?”)#pragma mark RegexKitLite 的使用总结/*RegexKitLite 提供的方法都是透过 NSString 来操作,常用的方法:1. - (NSArray *)RKL_METHOD_PREPEND(componentsMatchedByRegex):(NSString*)regex返回所有匹配成功的结果,并存放到一个数组里2. - (NSArray *)captureC

8、omponentsMatchedByRegex:(NSString *)regex;这个方法是透过传入一个 Regex 进行字串的比对,并且会将第一组比对出来的结果以 NSArray 回传群组。3. - (NSArray *)arrayOfCaptureComponentsMatchedByRegex:(NSString *)regex;這個方法如同上者,一样会回传 Regex 所比对出来的字串群组,但会回传全部的配对组合。4. - (BOOL)isMatchedByRegex:(NSString *)regex;判断字串是否与 Regex 配对,在进行资料验证的時候很实用。5. - (NSS

9、tring *)stringByMatching:(NSString *)regex;这方法则是会回传配对出来的第一個完整字串。6. - (NSString *)stringByReplacingOccurrencesOfRegex:(NSString *)regexwithString:(NSString *)replacement;将字串中与 Regex 配对的结果进行替换。7. - (NSInteger)replaceOccurrencesOfRegex:(NSString *)regex withString:(NSString*)replacement如果是 NSMutableStr

10、ing,则可以直接替换,并返回替换的次数8. - (NSArray *)componentsSeparatedByRegex:(NSString *)regex用于拆分,返回一个拆分后的字符串数组*/二.正则表达式的使用- (void)howToUseRegex #pragma mark 1.正则表达式规则 /*-1.1 普通字符-*/ / 字母、数字、汉字、下划线、非特殊定义的标点符号,都是”普通字符”。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 NSString *searchString1_1 = ”abcde”; NSString *regexString1_

11、1 = ”c”; NSString *matchedString1_1 = searchString1_1 stringByMatching:regexString1_1; NSLog(”matchedString1_1:%”,matchedString1_1); / 输出结果: c /*-1.2 简单的转义字符-*/ / 一些不便书写的字符,在前面加 “”,如:n,t, 等 NSString *searchString1_2 = ”abc$de”; / 记住在字符串中“”需要用“”表示 NSString *regexString1_2 = ”$d”; NSString *matchedStr

12、ing1_2 = searchString1_2 stringByMatching:regexString1_2; NSLog(”matchedString1_2:%”,matchedString1_2); / 输出结果: $d /*-1.3 能够与 多种字符 匹配的表达式-*/ /* . : 匹配除换行符以外的任意字符 w : 匹配字母或数字或下划线或汉字 s : 匹配任意的空白符 d : 匹配数字 b : 匹配单词的开始或结束 */ NSString *searchString1_3 = ”abc123”; / 正则表达式有一条规则:最先开始的匹配拥有最高的优先权 NSString *re

13、gexString1_3 = ”dd”; NSString *matchedString1_3 = searchString1_3 stringByMatching:regexString1_3; NSLog(”matchedString1_3:%”,matchedString1_3); / 输出结果: 12 /*-1.4 自定义能够匹配 多种字符 的表达式-*/tring1_4 = searchString1_4 stringByMatching:regexString1_4; NSLog(”matchedString1_4:%”,matchedString1_4); / 输出结果: bc

14、/*-1.5 修饰匹配次数的特殊符号-*/ / 使用表达式再加上修饰匹配次数的特殊符号,那么不用重复书写表达式就可以重复匹配 /* n : 表达式重复 n 次 m,n : 表达式至少重复 m 次,最多重复 n 次 m, : 表达式至少重复 m 次 ? : 匹配表达式 0 次或者 1 次,相当于 0,1 + : 表达式至少出现 1 次,相当于 1, * : 表达式不出现或出现任意次,相当于 0, */ NSString *searchString1_5 = ”It costs $12.5”; NSString *regexString1_5 = ”d+.?d”; NSString *matche

15、dString1_5 = searchString1_5 stringByMatching:regexString1_5; NSLog(”matchedString1_5:%”,matchedString1_5); / 输出结果: 12.5 /*-类似,本身不匹配任何字符,但是它要求它在匹配结果中所处位置的左右两边,其中一边是 “w” 范围,另一边是 非”w” 的范围 NSString *searchString1_6 = ”abc”; NSString *regexString1_6 = ”.b.”; NSString *matchedString1_6 = searchString1_6

16、stringByMatching:regexString1_6; NSLog(”matchedString1_6:%”,matchedString1_6); / 输出结果: a#pragma mark 2.正则表达式中的一些高级规则 /*-2.1 匹配次数中的贪婪与非贪婪-*/ / 1)在使用修饰匹配次数的特殊符号”m,n”, “m,”, “?”, “*”, “+”可以使同一个表达式能够匹配不同的次数,这种重复匹配不定次数的表达式在匹配过程中,总是尽可能多的匹配。如: NSString *searchString2_1_1 = ”dxxxdxxxd”; NSString *regexStrin

17、g2_1_1 = ”(d)(w+)(d)”; NSString *matchedString2_1_1 = searchString2_1_1stringByMatching:regexString2_1_1; NSLog(”matchedString2_1_1:%”,matchedString2_1_1); / 输出结果:dxxxdxxxd / 2)在修饰匹配次数的特殊符号后再加上一个 “?” 号,则可以使匹配次数不定的表达式尽可能少的匹配,这种匹配原则叫作 “非贪婪” 模式,也叫作 “勉强” 模式 NSString *regexString2_1_2 = ”(d)(w+?)(d)”; NS

18、String *matchedString2_1_2 = searchString2_1_1stringByMatching:regexString2_1_2; NSLog(”matchedString2_1_2:%”,matchedString2_1_2); / 输出结果: dxxxd /*-2.2 反向引用-*/ / 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为 1,第二个为 2,以此类推 NSString *se

19、archString2_2 = ”go go”; NSString *regexString2_2 = ”b(w+)bs+1b”; NSString *matchedString2_2 = searchString2_2 stringByMatching:regexString2_2; * 1)捕获 (exp) : 匹配 exp,并捕获文本到自动命名的组里 (? name exp) : 匹配 exp,并捕获文本到名称为 name 的组里,也可以写成(?nameexp) (?:exp) : 匹配 exp,不捕获匹配的文本,也不给此分组分配组号零宽断言,可节约性能,提高效率 2)零宽断言 (?=e

20、xp) : 匹配 exp 前面的位置 (? =exp) : 匹配 exp 后面的位置 (?!exp) : 匹配后面跟的不是 exp 的位置 (? !exp) : 匹配前面不是 exp 的位置注释(?#comment)这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读 */ NSString *searchString2_3 = ”Im singing while youre dancing.”; NSString *regexString2_3 = ”bw+(?=ingb)”; NSArray *matchedString2_3 = searchString2_3compon

21、entsMatchedByRegex:regexString2_3; NSLog(”matchedString2_3:%”,matchedString2_3); / 输出结果: (sing,danc) / 3.其他通用规则 /*-3.1-*/ / 表达式中,可以使用 “xXX” 和 “uXXXX” 表示一个字符(”X” 表示一个十六进制数) /* xXX : 编号在 0 255 范围的字符,比如:空格可以使用 “x20” 表示 uXXXX : 任何字符可以使用 “u” 再加上其编号的 4 位十六进制数表示,比如:”u4E2D” ? : 修饰匹配次数为 0 次或 1 次。要匹配 “?” 字符本身

22、,请使用 “?” + : 修饰匹配次数为至少 1 次。要匹配 “+” 字符本身,请使用 “+” * : 修饰匹配次数为 0 次或任意次。要匹配 “*” 字符本身,请使用 “*” | : 左右两边表达式之间 “或” 关系。匹配 “|” 本身,请使用 “|” “ : 用在不带的字符串中时,用”来进行转义,用在带的字符串中时,用”“来进行转义讯 QQ 号:1-90-94, (腾讯 QQ 号从 10000 开始)32 中国邮政编码:1-9d5(?!d) (中国邮政编码为 6 位数字)33 IP 地址:d+.d+.d+.d+ (提取 IP 地址时有用)附录二 : 参考资料正则表达式检测工具:regexlab/zh/workshop.htm tool.oschina/regex参考文档: regexlab/zh/regref.htm deerchao/tutorials/regex/regex.htm lxcnnblogs/tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1