Регулярное выражение, соответствующее объявлению метода target-c с перехватами - PullRequest
0 голосов
/ 20 января 2019

Мне нужно проверить, является ли строка допустимым объявлением метода Objective C, и извлечь имена параметров и описания параметров.Я использую регулярное выражение.

Я пытался извлечь значения с помощью регулярного выражения:

[\-\+]\s*\(\s*\w+\s*\**\)(?:\s*(\w+)\s*\{|(?:\s*(\w+)\s*\:\s*\(\s*\w+\s*\**\s*\)\s*(\w+))*\s\{)

Это работает для метода без параметров, таких как

- (void)willVisitObjectiveCProcessor {

, возвращающихся вБлок захвата 1 "willVisitObjectiveCProcessor"

отлично работает для метода с одним параметром, например

- (void)willVisitObjectiveCProcessor:(CDObjectiveCProcessor *)processor {

, возвращая "willVisitObjectiveCProcessor" в блоке захвата 1 и "процессор" в блоке захвата 2.

при чтении нескольких параметров в методе, подобном

- (void)addClassName:(NSString *)name referencedInFramework:(NSString *)frameworkName {

, возвращаемые захваты относятся только к последним параметрам, а не ко всем.Что я ошибаюсь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...