Как удалить полную строку из строки на основе совпадения строк с помощью регулярных выражений

1

У меня есть эта строка

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
  • 0
    Может быть, это поможет вам stackoverflow.com/questions/2930852/…
  • 0
    Вы говорите, что удалили Window: String но он все еще в ожидаемом результате ?!
Теги:
string

1 ответ

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

Используйте следующий подход (в случае, если все строки разделены новой строкой, то есть каждая строка находится в отдельной строке):

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);
  • 0
    Посмотрите этот jsfiddle.net/5umsofb1, и он дает fnct1(param: Int, Window: String): String func2(Window: String): String function3(param: String): String
  • 0
    @Williams, посмотрите эту скрипку: jsfiddle.net/5umsofb1/1
Показать ещё 8 комментариев

Ещё вопросы

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