const regex = new RegExp('\\b(
(?<!не\\s)(?<!лет|или\\s)(?<!года\\s)(?<!работ\\s)(?<!работы\\s)(?<!связанны[ей]\\s)
(?:
(?:со?\\s
(?:
личн(?:ы(?:х|ми?)|ого|ой)|
сво(?:ими?|его|ей|их)|
собственн(?:ой|ого|ы(?:х|ми?))){0,1}\\s{0,1}
(?:
легков(?:ой|ыми?)|
пасс?ажирск(?:ой|ими?)|
грузов(?:ой|ыми?)){0,1}\\s{0,1}
(?:
(?:а(?:[./]?м|(?:вто(?:мобил[ея]ми?|транспортом){0,1})))|
л[ ./]?[ат]|
транспортом|
грузовик[ао]ми?|
тс|
иномарк(?:ой|ами|и)|
газел(?:ями|ью)))|
(?:наличие\\s
(?:
личн(?:ых|ого|ой)|
сво(?:их|его|ей)|
собственн(?:ого|ой|ых)){0,1}\\s{0,1}
(?:
легков(?:ых|ого|ой)|
пасс?ажирск(?:их|ого|ой)|
грузов(?:ых|ого|ой)){0,1}\\s{0,1}
(?:
(?:а(?:[./]?м|(?:вто(?:мобил(?:я|ей)|транспорта){0,1})))|
л[ ./]?[ат]|
транспорта|
грузовик[ао]в?|
тс|
иномаро?ки?|
газел[еи]й?))|
(?:на\\s
(?:
личн(?:ых|о[йм])|
сво(?:их|[её][йм])|
собственн(?:о[йм]|ых)){0,1}\\s{0,1}
(?:
легков(?:ых|о[йм])|
пасс?ажирск(?:их|о[йм])|
грузов(?:ых|о[йм])){0,1}\\s{0,1}
(?:
(?:а(?:[./]?м|(?:вто(?:мобил(?:ях?|е)|транспорте){0,1})))|
л[ ./]?[ат]|
транспорте|
грузовик[ае]х?|
тс|
иномарк[еа]х?|
газел[ия]х)
)
)
)\\b', 'gmiu')
const str = `Наличие личного авто
Наличие личного автомобиля
наличие личного а/м
Наличие личного автотранспорта
Наличие личного ам
наличие личного легкового автотранспорта
Наличие личного легкового автомобиля
наличие личного полноприводного автомобиля
наличие личного транспорта
наличие личного грузового
Наличие личного л/а
Наличие личного а.м
наличие личного л.а
Наличие личного легкового автомобиля
наличие личного. а/м
наличие личного автомобильного транспорта
Наличие личного легкового а/м
Наличие личного л.а
наличие личного автомобилем
наличие личного автомобиля
Наличие личного исправного а/м
наличие личного(легкового) автомобиля
наличие личного автомобиля
Наличие личного а/транспорта
наличие личного легкового авто`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions