Удалить / удалить ненужную функцию (preg_replace)

Например, у нас есть такой текст:

    // comments
someFunc.f.log({
obj:obj,
other:other
});
console.log('here');
someFunc.f.log({
obj:obj,
other:other
}
);
console.log('here');
// comments

Я хочу из этой текстовой полосы someFunc.f.log (); Функция в PHP-бэкенде и в выходных данных получить:

// comments
console.log('here');
console.log('here');
// comments

Как мы можем достичь этой точки?

0

Решение

Если нет вложенных скобок, вы можете попробовать с это регулярное выражение regex101

$str = preg_replace('/^\h*someFunc\.f\.log\([^)]*\);\R*|^\h+/m', "", $str);

как это демо на eval.in. Если есть вложенные скобки, попробуйте с это рекурсивное регулярное выражение regex101

'/^\h*someFunc\.f\.log(\((?>[^)(]*(?1)?)*\));\R*|^\h+/m'

как другая демонстрация на eval.in

  • ^ соответствует началу строки с m многострочный флаг
  • | это символ трубы для чередования
  • \h соответствует горизонтальному пространству
  • [^… открывает отрицательный класс персонажа
  • (?1) вставляет первые скобки подшаблон
  • \R соответствует любой последовательности новой строки

(больше объяснения и генератор кода доступны на regex101)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]