Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find hardcoded strings but not those for file names (Xcode, Regex help)

I am searching for all hardcoded strings in my app so I can localize them. Currently I am using the regular express search for @"[^"]+" as suggested in this answer: Searching hard coded text in xcode

The issue is I want to only find some strings in this format. For example, I want to exclude [UIImage imageNamed:@"string"] and NSLog(@"Log string"). I believe the easiest way to do this is find a string of the format of @"[^"]+" as long as the prior characters do not include NSLog(, or imageNamed:, or several other things I will enter in manually.

How can I write a regex that excludes these cases?

like image 399
Andrew Avatar asked Oct 15 '13 18:10

Andrew


Video Answer


2 Answers

I think this would be more comprehensive

"[a-zA-Z0-9 ?!.,;/\-=+)(*&%#@]+"

Search > Find > Regular Expression -- type

enter image description here

enter image description here

like image 114
Sasan Soroush Avatar answered Oct 15 '22 17:10

Sasan Soroush


You can use a negative lookbehind to exclude those cases:

(?<!(imageNamed:|NSLog\())@"[^"]+"

like image 42
Soheil Avatar answered Oct 15 '22 18:10

Soheil