2010-02-22 4 views
0

Я пытаюсь заменить что-то вроде этого:Xcode ленивый регулярное выражение

NSSomeFunction(@"some var", @"another one") 

С:

NSSomeOhterFunction(@"some var") 

В Xcode. Так что эти исходные файлы ... небось регулярное выражение будет выглядеть примерно так:

NSSomeFunction\((.*), .+\) 

Но мне это нужно, чтобы быть ленивым. В противном случае. +) Будет соответствовать последнему появлению скобки, а не первой (например, обе скобки в конце будут заменены на одну, указанную в этой строке: «NSLog (@«% @ », NSSomeFunction (@« hey », @ "лол"))").

Как сделать ленивый поиск, как это? Я думаю, вы можете сделать это в жемчужине, используя модификатор/U (неровный). Хотя Xcode, похоже, не поддерживает это.

+1

Модификатор '/ U' находится в PHP, а не в Perl, и делает все кванторы неживыми по умолчанию или жадными, если а затем '?'. Чтобы процитировать Фридла: «Я бы предположил, что основной эффект этого модификатора шаблона - создать путаницу, поэтому я, конечно, не рекомендую его». http://www.oreilly.com/catalog/regex3/index.html –

ответ

3

обычно? будет указывать на не-жадное совпадение, поэтому для. +) вы бы использовали. +?)

+0

Спасибо, это сработало. – quano