如何使用XCode的查找工具找到不是IBOUtlets的弱属性?

时间:2017-04-20 09:46:48

标签: ios regex xcode

在我正在处理的项目中,我注意到某些情况下属性标记为weakassign时不应该:

@property(nonatomic, assign) NSArray *data;

我正在尝试检查是否还有其他情况发生这种情况,因此我正在使用此模式进行正则表达式搜索:

property.+(assign|weak).+\*

enter image description here

问题是这将匹配所有IBOutlet s:

@property (weak, nonatomic) IBOutlet UIBarButtonItem *barButtonItem;

是否有可能改进我的正则表达式以某种方式忽略它们?

(当然,如果你知道其他任何方式做我想做的事,请分享!)

1 个答案:

答案 0 :(得分:3)

如果您的正则表达式适用于您,并且您只是想避免匹配包含IBOutlet子字符串的相同字符串,那么您可以在找到{{{{}} (?!.*IBOutplet)之后立即使用negative lookahead property 1}}:

property(?!.*IBOutlet).+(assign|weak).+\*
        ^^^^^^^^^^^^^^

请参阅regex demo

请注意,您可以添加单词边界\b,以仅匹配整个单词:

\bproperty\b(?!.*\bIBOutlet\b).+\b(assign|weak)\b.+\*