2016-11-26 162 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中的調試示例。 相比於你,我一定在做錯事嗎? –