2016-11-26 4 views
0

Ищу регулярное выражение, которое дает мне что-то в формате:Regex для извлечения нескольких различных слов из строки

«Core i7 Extreme Edition» или «Core i3» или «Atom» или «Pentium», с учетом следующих входов:

«Процессор Intel® Core ™ i7-6950X Extreme Edition», «Процессор Intel® Core ™ i3-6300T», «Процессор Intel® Atom ™ D2550» или «Процессор Intel® Pentium® G4400», или «Процессор Intel® Core ™ 2 Duo E6400» или «Процессор Intel® Core ™ 2 Extreme QX6800» или «Процессор Intel® Core ™ 2 Quad Q9400S».

Я хочу прочитать специальные функции идентификации из названия продукта.

Я понимаю, что что-то вдоль линий этого: ядра | i3 | i5 | i7 | Atom | Pentium | \ s4 \ s | Celeron | Extreme Edition

Даст мне то, что я хочу в идеальном мире , где ничего не добавлено.

Его можно создать? Если он добавляет что-либо, я использую C#, но он находится в среде, которая является очень общей, и у меня есть только строка и регулярное выражение.

ответ

1

Вы можете попробовать это регулярное выражение: (Посмотреть на regex101)

Intel® | Processor|®|™|[ -][A-Z]*\d{4}[A-Z]* 

И заменить пустую строку "". Это соответствует всем ненужным частям и удаляет их.

string pattern = @"Intel® | Processor|®|™|[ -][A-Z]*\d{4}[A-Z]*"; 
string substitution = @""; 
string input = @"Intel® Core™ i7-6950X Processor Extreme Edition"; 
Regex regex = new Regex(pattern); 
string result = regex.Replace(input, substitution); 
+0

Практически отлично работает, но у меня есть один «крайний» корпус, где он пропускает номер «2» после «в Intel® Core ™ 2 Quad Processor Q9400S». –

+0

Это работает на regex101, хотя это странно ... –

+0

http://prntscr.com/dc0w9c от regex101 http://prntscr.com/dc0wkx от примера отладки в Visual studio. Должно быть, я должен что-то делать неправильно по сравнению с тобой? –