Вы можете использовать
/(?:fir|la)stname[\s:=']*([^'\s]*)/gi
См. Демоверсию regex . Значение, которое вам нужно, находится в группе 1. Добавьте при необходимости \b
словосочетание до (?:fir|la)
.
Подробности
(?:fir|la)
- либоfir
или la
stname
- буквенный текст [\s:=']*
- 0 или более пробелов, :
, =
или '
([^'\s]*)
- Захват группы 1: 0 или более символов, отличных от '
и пробелов.
См. Демонстрацию JS:
var s = "khjkhkj firstname: 'hello' jlkjkjkl\nuhziuuj firstName 'hello' jkljljkkj\nugujgjg firstname='hello' oljkjlkjl\nhkhjhkj firstName = 'hello' jljlljj\nhjkhjkh firstname = hello jljkkljlk\nkhjkhkj lastname: 'world' jlkjkjkl\nuhziuuj lastname 'world' jkljljkkj\nugujgjg lastName='world' oljkjlkjl\nhkhjhkj lastname = 'world' jljlljj\nhjkhjkh lastName = world jljkkljlk";
var rx = /(?:fir|la)stname[\s:=']*([^'\s]*)/gi;
var m, res = [];
while (m = rx.exec(s)) {
res.push(m[1]);
}
console.log(res);
Или, используя matchAll
:
const s = "khjkhkj firstname: 'hello' jlkjkjkl\nuhziuuj firstName 'hello' jkljljkkj\nugujgjg firstname='hello' oljkjlkjl\nhkhjhkj firstName = 'hello' jljlljj\nhjkhjkh firstname = hello jljkkljlk\nkhjkhkj lastname: 'world' jlkjkjkl\nuhziuuj lastname 'world' jkljljkkj\nugujgjg lastName='world' oljkjlkjl\nhkhjhkj lastname = 'world' jljlljj\nhjkhjkh lastName = world jljkkljlk";
const rx = /(?:fir|la)stname[\s:=']*([^'\s]*)/gi;
let results = [...s.matchAll(rx)];
console.log(Array.from(results, m => m[1]));
Другой вариант - захватить '...'
или строку символов без пробелов после слов и знаков препинания:
var s = "khjkhkj firstname: 'hello' jlkjkjkl\nuhziuuj firstName 'hello' jkljljkkj\nugujgjg firstname='hello' oljkjlkjl\nhkhjhkj firstName = 'hello' jljlljj\nhjkhjkh firstname = hello jljkkljlk\nkhjkhkj lastname: 'world' jlkjkjkl\nuhziuuj lastname 'world' jkljljkkj\nugujgjg lastName='world' oljkjlkjl\nhkhjhkj lastname = 'world' jljlljj\nhjkhjkh lastName = world jljkkljlk";
var rx = /(?:fir|la)stname[=:\s]+('([^']*)'|\S+)/gi;
var m, res = [];
while (m = rx.exec(s)) {
if (m[2] !== undefined) {
res.push(m[2]);
} else {
res.push(m[1]);
}
}
console.log(res);
См. это регулярное выражение .