Как поймать любую строку, если она следует за определенной строкой - PullRequest
2 голосов
/ 08 октября 2019

Я пытаюсь поймать любые символы, которые следуют за in или at до конца строки.

Например, с учетом:

Йохен играет в парке.

Результат должен быть:

the park.

Я пробовал:

text.match(/(?:in|at)\s+([\w\s].*)(\n)/g);

1 Ответ

1 голос
/ 08 октября 2019

Модификатор g при использовании с Strig#match() исключает захват из окончательного результата. Кроме того, \n не является обязательным, поскольку . соответствует любому символу, кроме символа разрыва строки.

Обратите внимание, что \s+ уже использует все пробелы после in или at, таким образом, \s является избыточным в [\w\s], вы можете оставить только \w или \S.

Кроме того, имеет смысл сопоставлять in или at как целые слова, если вы хотите толькосовпадать после этих двух предлогов, а не после sin, sat и т. д.

 var text = "in the park";
 var m = text.match(/\b(?:in|at)\s+(\w.*)/);
 if (m) {
   console.log(m[1]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...