你的位置:首页 > 操作系统

[操作系统]iOS-RegexKitLite导入错误


RegexKitLite是什么?

RegexKitLite是一个非常方便的处理正则表达式的第三方类库。

本身只有一个RegexKitLite.h和RegexKitLite.m

 

导入RegexKitLite可能会出现什么错误?

我们在arc的情况下直接导入会报20个错误,错误如下:

我们需要在Build Phases下找到RegexKitLite.m文件,将其设置为-fno-objc-arc,可以解决出现的20个错误。

如下图:

还有一种错误情况,如下图:

解决方法:

在项目的编译设置中找到Other Linker Flags,然后在后面字段空白处双击,添加“-licucore”就可以了。

如下图:

 

RegexKitLite如何使用?

场景一:从某一个字符传中提取符合正则表达式的子字符串。

我们现在假设提取下面字符串中的id=XXXXXXXX

1 NSString *str1 = @"http://h5.m.taobao.com/awp/core/detail.htm?id=527539084651&ali_trackid=2:mm_112790547_13020914_51016796:1457951254_264_127060785&pvid=50_124.90.181.28_427_1457951214964&e=WybQvfUPKUpw4vFB6t2Z2ueEDrYVVa64LKpWJ-in0XJRAdhuF14FMeS3otDffgY_J1gyddu7kN9gFrpfAfQEfI1vq2orw8pUjrDrPJpGNddU1KzySiK2r0EdWLwsh8FTT-iWs8bZ2Y7C0kf_oMAuHMXyFn1X9GbY40_B2z3Il4fr7hthXoIw_RgPirNhABK1UveWd6VbhEwwPrn00QwN2w&type=2&tkFlag=0";2 NSString *regex = @"id=\\d{12}";3 NSString *subStr = [str1 stringByMatching:regex];4