正则表达式从字符串
问题描述:
我要寻找一个正则表达式,让我的格式的东西提取多个不同的词:正则表达式从字符串
“酷睿i7至尊版”或“酷睿i3”或“原子”或“奔腾”,给出以下输入:
“英特尔®酷睿™i7-6950X处理器至尊版”,“英特尔®酷睿™i3-6300T处理器”,“英特尔®凌动™处理器D2550”或“英特尔®奔腾®处理器G4400”或“英特尔®酷睿™2双核处理器E6400”或“英特尔®酷睿™2至尊处理器QX6800”或“英特尔®酷睿™2四核处理器Q9400S”。
我想从产品名称读取特殊识别功能。
我意识到,沿此线的东西: 核心| I3 |酷睿i5 | i7处理器|凌|奔腾| \ S4 \ S |赛扬|至尊版
能不能给我我想要的东西在一个完美的世界,没有添加任何东西。
可以创建它吗? 如果它添加了我正在使用C#的任何东西,但它在一个非常通用的环境中,而且我只有字符串和正则表达式。
答
你可以试试这个表达式:(参见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);
几乎完美的作品,但我在那里™系列,“英特尔®酷睿™2四核处理器Q9400S”之后错过了数字“2”一个“边缘”情况。 –
虽然它在regex101上工作,但这很奇怪... –
http://prntscr.com/dc0w9c from regex101 http://prntscr.com/dc0wkx来自Visual Studio中的调试示例。 相比于你,我一定在做错事吗? –