2012-01-06 12 views
1

我需要一個正則表達式查詢的幫助,我似乎無法工作。C#正則表達式

我需要檢查以下格式:字符串 - 整數

字符串傳遞到方法,一個叫studyID參數,所以應該檢查studyID - 整數,其中「 - 」是一個字符串文字,並有是它的任何一面的空間。

任何人都可以請幫忙。

謝謝。

+2

你試過了什麼,結果是什麼?錯誤,錯誤的結果? – 2012-01-06 12:30:26

+0

我最近的嘗試是regex = study.Id +「/ s-/s/d」; – 2012-01-06 12:33:31

+0

你能舉出一些這個正則表達式應該工作的實際值的例子嗎? – 2012-01-06 12:35:54

回答

3

這應該適合你。我假設你只是在尋找一場比賽。

Regex r = new Regex(study.Id + "(\\s+)(-)(\\s+)(\\d+)"); 

\\ s +將處理任何空格和\\ d +任何整數。

2

特殊字符是這樣轉義的:\s而不是/s。另外,如果你想匹配多個數字,你可以這樣做:\d+匹配至少一個數字(來自Howard的評論)。

然後保證自己,study.Id沒有「正則表達式字符」像[]+*等..

+3

您可以使用'Regex.Escape(...)'來轉義'study.Id'。 – Howard 2012-01-06 12:48:12

0

任何字符串,其次是「 - 」和任何數量的使用:

^(.+)(\s-\s)(\d+)$ 

爲在開始字符串 「studyID」,使用此:

^studyID(\s-\s)(\d+)$ 
0

結合一切:

var re = new Regex("^" + Regex.Escape(study.Id) + @"\s+-\s+(\d+)\z"); 

轉義study.Id的內容,允許圍繞-的多個數字空間,將其錨定到字符串的開始/結尾處。如果後者不需要,您可以刪除^\z