//正則表達式:
在編寫處理字符串的程序時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達式就是用于描述這些規(guī)則的工具。換句話說幼驶,正則表達式就是記錄文本規(guī)則的代碼
正則表達式是對字符串操作的一種邏輯公式传透,用事先定義好的一些特定字符耘沼、及這些特定字符的組合,組成一個"規(guī)則字符串"朱盐,這個"規(guī)則字符串"用來表達對字符串的一種過濾邏輯群嗤。
-在很多文本編輯器里,可以使用正則表達式進行檢索兵琳,Xcode同樣支持正則表達式狂秘!
-幾乎所有的程序設(shè)計語言都支持正則表達式,例如:OC闰围,java赃绊,c#,python羡榴,js等碧查。
目的:
1. 給定的字符串是否符合正則表達式的過濾邏輯(稱作“匹配”);
2. 可以通過正則表達式校仑,從字符串中獲取我們想要的特定部分忠售。
好處:
1. 靈活性、邏輯性和功能性非常的強迄沫;
2. 可以迅速地用極簡單的方式達到字符串的復(fù)雜控制稻扬。
3. 對于剛接觸的人來說,比較晦澀難懂羊瘩。
用處:
1. 判斷給定的字符串是否符合某一種規(guī)則(專門用于操作字符串)
> 電話號碼泰佳,電子郵箱,URL...
可以直接百度別人寫好的正則
1> 別人真的寫好了尘吗,而且測試過了逝她,我們可以直接用
2> 要寫出沒有漏洞正則判斷,需要大量的測試睬捶,通常最終結(jié)果非常負責
2. 過濾篩選字符串黔宛,網(wǎng)絡(luò)爬蟲
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];
//創(chuàng)建url字符串
NSString *str = @"https://blog.csdn.net/weasleyqi/article/details/7912647";
//定義規(guī)則
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\\&%_\\./-~-]*)?";
//創(chuàng)建正則對象
NSRegularExpression *regular = [[NSRegularExpression alloc]initWithPattern:pattern options:0 error:nil];
//開始匹配,指定字符串
NSUInteger count = [regular numberOfMatchesInString:str options:0 range:NSMakeRange(0, str.length)];
//返回第一個符合要求的結(jié)果
NSTextCheckingResult *result = [regular firstMatchInString:str options:0 range:NSMakeRange(0, str.length)];
NSLog(@"%ld",count);
//截取范圍字符串
str = [str substringWithRange:result.range];
NSLog(@"%@",str);
}