Regex заменить последний (что-то) - PullRequest
0 голосов
/ 07 июня 2018

У меня есть набор данных, который всегда содержит что-то вроде этого:

title(s) (some_text)

Теперь я хотел бы удалить (что-то) с помощью регулярного выражения.

Моя проблема: значение в (some_text) может быть любым.

Есть идеи, как решить эту проблему с помощью регулярных выражений?

Некоторые примеры данных:

Egg(s) (whole) 
Berry (mix) (g)

Ожидаемый результат:

Egg(s)
Berry (mix)

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Если у вас есть каждая строка в отдельной строке, вы можете использовать для сопоставления того, что должно быть удалено:

\s*\([^(]*\)\s*$

В скрипте:

var tests = ["Egg(s) (whole) ", "Berry (mix) (g)"];
for (let s of tests) {
    s = s.replace(/\s*\([^(]*\)\s*$/, "");
    console.log(s);
}
0 голосов
/ 07 июня 2018

Вот что я сделаю, используя это регулярное выражение /\s\([^(]*\)$/:

var tests = ["Egg(s) (whole)", "Berry (mix) (g)"];
tests.forEach(function(str, i){
  tests[i] = str.replace(/\s\([^(]*\)$/, '');
});

console.log(tests);

Вы не можете использовать более легкое /\s\(.*\)$/, так как оно возвращает "Ягода" для "Ягода (микс) (г)".

Надеждаэто помогает.

0 голосов
/ 07 июня 2018

С помощью \s\(.*\)$ вы можете удалить последнюю часть данных

Здесь пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...