Например, у нас есть такой текст:
// 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
Как мы можем достичь этой точки?
Если нет вложенных скобок, вы можете попробовать с это регулярное выражение 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)
Других решений пока нет …