iphone 正则表达式使用(NSRegularExpression)

原文: http://blog.csdn.net/l_ch_g/article/details/9399363

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

下面一个简单的使用正则表达式的一个例子:

1.首先新建一个项目,因为必须使用iso4.0以后的版本,所有我们新建一个iphone项目

File->new Project 选择:view-based Application 点击 choose。

填写项目名字:RegularExpressionTest

2.而后打开RegularExpressionTest.m文件定义一个方法叫做:

-(void)parseString{

//组装一个字符串,需要把里面的网址解析出来

NSString *[email protected]"sfdsfhttp://www.baidu.com";

//NSRegularExpression类里面调用表达的方法需要传递一个NSError的参数。下面定义一个

NSError *error;

//http+:[^\\s]* 这个表达式是检测一个网址的。

//<a[^<]+href="course_play.html\?url=([^\"]+)">

//<a[^<]+href="([^\"]+)">

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];

//从urlString当中截取数据

NSString *result=[urlString substringWithRange:resultRange];

//输出结果

NSLog(@"%@",result);

}

}

}

时间: 2024-11-06 23:35:04

iphone 正则表达式使用(NSRegularExpression)的相关文章

iOS正则表达式NSRegularExpression

有时候我们可能想从网页上自己想要的数据摘取下来,此时一般我们可以使用正则表达式(NSRegularExpression).扫描器(NSScanner)两种途径解析. 在使用正则表达式的时候,如果需要解析HTML网页源码,使用NSRegularExpression的matchesInString方法解析可能只会返回一个结果,这是由于遇到换行符所导致,此时只需将.替换成[\\s\\S],小括号的意思是取出中间括号内匹配到的部分,其NSRange值将会在结果中返回.返回的result(NSTextCh

ios 关于正则表达式

1.NSString 方法 { NSString *searchText = @"rangeOfString";NSRange range = [searchText rangeOfString:@"^[0-9]+$" options:NSRegularExpressionSearch];if (range.location != NSNotFound) { NSLog(@"range :%@", [searchText substringWit

iOS开发之详解正则表达式

本文由Charles翻自raywenderlich原文:NSRegularExpression Tutorial: Getting Started更新提示:本教程被James Frost更新到了iOS8和swift.Tutorial团队成员的Soheil Azarpour完成最初发布.正则表达式(广为所知的"regex")是一个字符串或一个字符序列来说明一种模式,把它作为一个搜索字符串-非常强大! 在一个文本编辑器或文字处理器中普通的旧式搜索只允许你进行简单的匹配.正则表达式可以实现这

NSRegularExpression

相信大家开发过程中碰到这个问题:由于服务器端数据库不支持Emoji表情的插入,所以需要我们对于用户输入的内容过滤. 实现代码: 1 #pragma mark - UITextViewDelegate Methods 2 - (void)textViewDidChange:(UITextView *)textView { 3 if (textView.text.length) { 4 // 获取过滤之后的字符串 5 NSString *text = [self forbidInputEmoji:t

iOS.TextKit.01.凸版印刷效果

1.案例视图,如下图 2.代码 TextKit01ViewController.h #import <UIKit/UIKit.h> @interface TextKit01ViewController : UIViewController @property (nonatomic,strong) IBOutlet UITextView *textView; // 文本可以排版的区域 @property (nonatomic,strong) NSTextContainer *textContai

快速简易的分解歌词文件

以下是一个歌词文件,如何快速的分解出来呢? 李克勤 - 月半夜小夜曲.lrc [ti:月半夜小夜曲] [ar:李克勤] [by:TTPod] [00:01.48]月半小夜曲 [00:05.66]作词:向雪怀 [00:10.66]作曲:河合奈保子 [00:15.63]演唱:李克勤 [00:20.63] [00:24.56]仍然倚在失眠夜望天边星宿 [00:30.46]仍然听见小提琴如泣似诉再挑逗 [00:36.30]为何只剩一弯月留在我的天空 [00:42.92]这晚以后音讯隔绝 [00:48.2

快速简易封装歌词文件

月半夜小夜曲.lrc [ti:月半夜小夜曲] [ar:李克勤] [by:TTPod] [00:01.48]月半小夜曲 [00:05.66]作词:向雪怀 [00:10.66]作曲:河合奈保子 [00:15.63]演唱:李克勤 [00:20.63] [00:24.56]仍然倚在失眠夜望天边星宿 [00:30.46]仍然听见小提琴如泣似诉再挑逗 [00:36.30]为何只剩一弯月留在我的天空 [00:42.92]这晚以后音讯隔绝 [00:48.29]人如天上的明月是不可拥有 [00:54.26]情如曲

【转】 iOS 学习之 NSPredicate 模糊、精确、查询

简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): 1 NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; (1)比较运算符>,<,==,>=,<=,!=可用于数值及字符串例:@"number > 100" (2)范围运算符:IN.BETWEEN例:@"numb

IOS一些高效的第三方框架库

MBProgressHUD ——进展指示符库 苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore.而 MBProgressHUD提供了一个替代方案,而且在用户角度上,实现的效果根本看不出和官方程序有什么差别.同时还提供了其他附加功能,比如虚拟进展 指示符,以及完成提示信息.整合到项目里也很容易,这里不细谈了. ASIHttpRequest ——HTTP Network库 iPhone当然也有自己的HTTP Netwo