Regex чередование необязательно заменить

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

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

Редактировать: ожидаемый ввод и вывод:

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

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

1 ответ

Решение

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

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

Рабочая демонстрация

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

И второй:

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

Рабочая демонстрация

Другие вопросы по тегам