在我正在处理的项目中,我注意到某些情况下属性标记为weak
或assign
时不应该:
@property(nonatomic, assign) NSArray *data;
我正在尝试检查是否还有其他情况发生这种情况,因此我正在使用此模式进行正则表达式搜索:
property.+(assign|weak).+\*
问题是这将匹配所有IBOutlet
s:
@property (weak, nonatomic) IBOutlet UIBarButtonItem *barButtonItem;
是否有可能改进我的正则表达式以某种方式忽略它们?
(当然,如果你知道其他任何方式做我想做的事,请分享!)
答案 0 :(得分:3)
如果您的正则表达式适用于您,并且您只是想避免匹配包含IBOutlet
子字符串的相同字符串,那么您可以在找到{{{{}} (?!.*IBOutplet)
之后立即使用negative lookahead property
1}}:
property(?!.*IBOutlet).+(assign|weak).+\*
^^^^^^^^^^^^^^
请参阅regex demo
请注意,您可以添加单词边界\b
,以仅匹配整个单词:
\bproperty\b(?!.*\bIBOutlet\b).+\b(assign|weak)\b.+\*