2010-10-13 61 views
1

我需要一些簡單的模式匹配和替換練習幫助我正在做什麼?需要C#中正則表達式,模式匹配的幫助?

我需要在給定的上下文中的任何字符串中匹配以下兩個字符串,並且期望這兩個模式都存在於給定的提供的字符串中。

1) 「寬度= 000」 或 「寬度= 00」 或 「寬度= 0」

2) 「滴= 000」 或 「下降= 00」 或 「降= 0」

對於每種情況,值可以是0-9之間的任何值,因此'000' - >'999'可以是提供的測試中的有效測試用例。

string url = Regex.Replace(inputString, patternString, replacementValueString); 

感謝,

+0

感謝真棒和快速反應,1+所有。 – IbrarMumtaz 2010-10-13 14:40:33

+0

下次,請僅註冊*正確*答案。 :) – Timwi 2010-10-13 14:42:40

回答

3

看一看這個頁面來解釋各個元素:http://msdn.microsoft.com/en-us/library/az24scfc.aspx

像這樣的正則表達式字符串應工作的偉大:

"\b(?:width|drop)\s*=\s*\d{1,3}\b" 

要閱讀的名稱並在您的代碼中的值:

"\b(?<name>width|drop)\s*=\s*(?<value>\d{1,3})\b" 

如果您不需要將數字限制爲僅3位數字,則可以使用「\ d +」而不是「\ d {1,3}」。

開頭的「\ b」將確保您沒有得到某個較大單詞的「寬度」或「下降」。最後的「\ b」會阻止您匹配大於999的數字。

equals語句兩邊的「\ s *」允許「drop = 000」以及「drop = 000」 。

3

像這樣的工作:

(?:width|drop)=\d{1,3}