2016-11-26 161 views
0

我要寻找一个正则表达式,让我的格式的东西提取多个不同的词:正则表达式从字符串

“酷睿i7至尊版”或“酷睿i3”或“原子”或“奔腾”,给出以下输入:

“英特尔®酷睿™i7-6950X处理器至尊版”,“英特尔®酷睿™i3-6300T处理器”,“英特尔®凌动™处理器D2550”或“英特尔®奔腾®处理器G4400”或“英特尔®酷睿™2双核处理器E6400”或“英特尔®酷睿™2至尊处理器QX6800”或“英特尔®酷睿™2四核处理器Q9400S”。

我想从产品名称读取特殊识别功能。

我意识到,沿此线的东西: 核心| I3 |酷睿i5 | i7处理器|凌|奔腾| \ S4 \ S |赛扬|至尊版

能不能给我我想要的东西在一个完美的世界,没有添加任何东西。

可以创建它吗? 如果它添加了我正在使用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四核处理器Q9400S”之后错过了数字“2”一个“边缘”情况。 –

+0

虽然它在regex101上工作,但这很奇怪... –

+0

http://prntscr.com/dc0w9c from regex101 http://prntscr.com/dc0wkx来自Visual Studio中的调试示例。 相比于你,我一定在做错事吗? –