2015-03-09 2 views
0

Я хотел бы сделать мой life перевод Objective-C to Swift проще; В настоящее время я пишу программу, которая будет соответствовать определенным часто используемым конструкциям (таким как методы, свойства и переменные) и заменяет их версией Swift. Теперь я пытаюсь заменить +/- перед именем метода опционально либо class, если +, либо ничего, если -.Повторное чередование необязательное заменить

Я не могу найти, как я могу изменить чередование (\+|-) либо class, либо по выбору. Возможно ли это в чистом регулярном выражении? Или мне нужно поместить это в мою логику приложения?

Edit: ожидается ввод и вывод:

- (void)composeView(...) дает func composeView(...)

+ (void)composeView(...) дает class func composeView(...)

+0

Можете ли вы поместить образец ввода и ожидаемый результат? –

+0

Отредактировано для добавления их – vrwim

+0

Downvoter, позаботьте объяснить? – vrwim

ответ

0

Вы можете использовать два регулярных выражений, первый может быть:

- \(\w+\)(composeView\(.*?\)) 

Working demo

Посмотрите на Substitution разделе

enter image description here

И второе:

\+ \(\w+\)(composeView\(.*?\)) 

Working demo

enter image description here

+0

Итак, вы говорите, что что-то вроде 'inline if' невозможно в regex? Если это так, это, вероятно, лучший ответ. – vrwim

+0

@vrwim вы можете делать 'if' с регулярным выражением, но вы не можете решить, что заменить. Итак, лучше всего два регулярных выражения ... проще и проще –

+0

Не могли бы вы указать мне в правильном направлении поисковые термины в этом регулярном выражении 'if'? – vrwim

Смежные вопросы