using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\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";
string input = @"Наличие личного авто
Наличие личного автомобиля
наличие личного а/м
Наличие личного автотранспорта
Наличие личного ам
наличие личного легкового автотранспорта
Наличие личного легкового автомобиля
наличие личного полноприводного автомобиля
наличие личного транспорта
наличие личного грузового
Наличие личного л/а
Наличие личного а.м
наличие личного л.а
Наличие личного легкового автомобиля
наличие личного. а/м
наличие личного автомобильного транспорта
Наличие личного легкового а/м
Наличие личного л.а
наличие личного автомобилем
наличие личного автомобиля
Наличие личного исправного а/м
наличие личного(легкового) автомобиля
наличие личного автомобиля
Наличие личного а/транспорта
наличие личного легкового авто";
RegexOptions options = RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.CultureInvariant;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx