//正则表达式:
在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码
正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。
-在很多文本编辑器里,可以使用正则表达式进行检索,Xcode同样支持正则表达式!
-几乎所有的程序设计语言都支持正则表达式,例如:OC,java,c#,python,js等。
目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
好处:
1. 灵活性、逻辑性和功能性非常的强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
用处:
1. 判断给定的字符串是否符合某一种规则(专门用于操作字符串)
> 电话号码,电子邮箱,URL...
可以直接百度别人写好的正则
1> 别人真的写好了,而且测试过了,我们可以直接用
2> 要写出没有漏洞正则判断,需要大量的测试,通常最终结果非常负责
2. 过滤筛选字符串,网络爬虫
3. 替换文字,QQ聊天,图文混排
// ViewController.m
// 1.正则表达式练习
//
// Created by Francis on 15/2/21.
// Copyright © 2015年 Francis. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//创建url字符串
NSString *str = @"https://blog.csdn.net/weasleyqi/article/details/7912647";
//定义规则
NSString *pattern = @"((http|ftp|https)://)(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\\&%_\\./-~-]*)?";
//创建正则对象
NSRegularExpression *regular = [[NSRegularExpression alloc]initWithPattern:pattern options:0 error:nil];
//开始匹配,指定字符串
NSUInteger count = [regular numberOfMatchesInString:str options:0 range:NSMakeRange(0, str.length)];
//返回第一个符合要求的结果
NSTextCheckingResult *result = [regular firstMatchInString:str options:0 range:NSMakeRange(0, str.length)];
NSLog(@"%ld",count);
//截取范围字符串
str = [str substringWithRange:result.range];
NSLog(@"%@",str);
}