У меня есть эта строка
const str = "fnct1(param: Int, Window: String): String func2(Window: String): String function3(param: String): String"
Я удалил Window: String
из fnct1(param: Int, Window: String): String
, используя регулярное выражение.
str.replace(/(, )?Window: String/g, '')
Теперь я хочу удалить полную строку, если есть один аргумент и значением которого является Window: String
Он должен дать
fnct1(param: Int, Window: String): String
function3(param: String): String
Используйте следующий подход (в случае, если все строки разделены новой строкой, то есть каждая строка находится в отдельной строке):
const str = 'fnct1(param: Int, Window: String): String
func2(Window: String): String
function3(param: String): String';
const regex = /^[^\s(]+\(Window:\s*String\): .+\n*/gm;
const result = str.replace(regex, '');
console.log(result);
Для однострочного текста используйте следующий подход:
const str = 'fnct1(param: Int, Window: String): String func2(Window: String): String function3(param: String): String';
const regex = /[^\s(]+\(Window:\s*String\): [^(\s]+\s*/gm;
const result = str.replace(regex, '');
console.log(result);
fnct1(param: Int, Window: String): String func2(Window: String): String function3(param: String): String
Window: String
но он все еще в ожидаемом результате ?!