正则表达式在Xcode中的运用
普通的查找和替换在这里就不多说了,有些时候你会发现普通的查找替换有点儿力不从心,比如下面这种情况:
把NSTextAlignmentRight
和NSTextAlignmentLeft
同时替换为NSTextAlignmentCenter
你可能会说,这有什么难的嘛,先把NSTextAlignmentRight
替换为NSTextAlignmentCenter
,再把NSTextAlignmentLeft
替换为NSTextAlignmentCenter
就好了嘛。
嗯哼,好像没什么问题,那啥我们说另外一种情况吧,代码中很多[UIFont systemFontOfSize:1]
、[UIFont systemFontOfSize:2]
、[UIFont systemFontOfSize:3]
、[UIFont systemFontOfSize:size]
等等这样的内容,现在想要对所有的字号进行一个统一的处理,所以呢,就定义了一个宏:#define FONT(a) [UIFont systemFontOfSize:(multiply * a)]
。
接下来呢,我就想吧所有的[UIFont systemFontOfSize:xxx]
全部替换为我新定义的宏。。。
看起来普通的已经满足不了这个要求了!
好嘛,这时候就要用到正则表达式了_
先看下这个图片:
regreplace.png
可以看到使用\[UIFont systemFontOfSize:(.*)\]
这个正则表达式已经把项目中所有符合条件的目标字符串都搜索出来了,简单说下这个表达式,\
是转义字符,由于[
在正则表达式里属于关键字,所以这里需要转义一下,就表示本来的字符,后面的.*
表示匹配任意字符,用括号括起来是因为在替换中需要用到,所以这里要先取出来。
下面把它们替换成自定义的宏:
regreplacedone.png
这样就省了很多事了,当然这只是个简单的例子,正则表达式很强大,合理使用,工作效率可以得到大大的提高。
网友评论