Регулярное выражение для поиска заменить

1

В контексте этого вопроса я хочу сделать следующие изменения:

Найти:

funcA (param0, param1, param2, param3);

Заменить:

if(isTrue)
    funcB(param0,funcC(param1,param2,param3));

funcA может иметь любое количество параметров, кроме param0.Как это можно сделать? Для простоты проигнорируйте базовый регистр, т.е. когда param pass to funcA является только param0.

funcA:

public void funcA(String param0,Object... params)

funcC:

public void funcB(Object... params).

РЕДАКТИРОВАТЬ:

Параметры (param1, param2..) - это просто строка, содержащая алфавиты.

  • 1
    Что насчет вложенных скобок, например, funcA(param0,param1.trim(), param2, param3.size()); и т.д?
  • 0
    нет. они наверняка просто алфавиты (имена)
Теги:
sublimetext2

1 ответ

1
Лучший ответ

Регулярное выражение поиска:

^ *funcA *\(([^,\s;)]*) *(?:, *([^)\;]+))?

Замена:

if(isTrue) funcB($1, funcC($2)

Демо-версия RegEx

  • 0
    Привет, это выглядит хорошо. Но вы можете заставить регулярное выражение сначала найти funcA. Здесь предполагается, что данная строка вызывает funcA. Я должен сделать замену в моем коде
  • 0
    хорошо, проверьте обновленный ответ сейчас.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню