正则表达式随笔

//正则表达式:

在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码

正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

-在很多文本编辑器里,可以使用正则表达式进行检索,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);

}

推荐阅读更多精彩内容