Мне нужно проверить, является ли строка допустимым объявлением метода 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 {
, возвращаемые захваты относятся только к последним параметрам, а не ко всем.Что я ошибаюсь?