RegEx для сопоставления имен в середине предложений - PullRequest
1 голос
/ 05 мая 2019

Я пытаюсь захватить имена в абзаце и вернуть их в виде массива. Предложение с именами содержит «names are». Пример:

Первое предложение. Несколько второе предложение. Третье предложение и имена Джон, Джейн, Джен Вот четвертое предложение о других вещах.

Желаемый вывод:

["Джон", "Джейн", "Джен"]

1012 * Покушение * paragraph.match(/names are ([A-Za-z ]+,{0,1} {0,1})+\./)

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Вы можете использовать split() после сопоставления

let str = `The first sentence. Some second sentence. Third sentence and the names are John, Jane, Jen. Here is the fourth sentence about other stuff.`

let res = str.match(/names are ([A-Za-z ]+,{0,1} {0,1})+\./g)[0].split(/\s+/g).slice(2)
console.log(res)
1 голос
/ 05 мая 2019

Вы можете использовать names are ([^.]+), чтобы сопоставить все до следующего периода.Затем используйте split, чтобы получить имена в массиве

const str = 'The first sentence. Some second sentence. Third sentence and the names are John, Jane, Jen. Here is the fourth sentence about other stuff.'

const regex = /names are ([^.]+)/,
      names = str.match(regex)[1],
      array = names.split(/,\s*/)

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