2012-06-18 97 views
2

我正在使用正則表達式來檢索段落。我的字符串變量中的段落包含開始字母G.並以變量@Variable結尾。REGEX C#(匹配開始和結束詞)

我會用什麼模式來抓取該段落?我正在使用下面的代碼,但我認爲我真的關閉了。

Regex.Match(paragraph, @"\G. .*\@Variable$"); 

回答

2

這將是這樣的:

string regex = @"G.+" + variable.ToString() 
Regex.Match(paragraph, regex); 

當你在它搶Expresso副本 - 使這樣的任務更容易。

+0

有兩件事,第一,爲什麼'\ G'沒有必要逃避我所知道的G?其次,我想你會想''+'',這樣你就可以得到'一個或多個'而不是'零或多個'。 – CodingGorilla

+0

@CodingGorilla - 積分 - 非常感謝您指出這些 –

1

我想你可能會尋找這樣的事情:

Regex.Match(paragraph, string.Format(@"^G.*?{0}$", yourVariableHere)); 
1

我想這是你想要的(如果我理解你的要求):

string regex = @"G.+" + variable; 
Regex.Match(paragraph, regex); 

幾件事情要注意,你必須要小心的是在variable如果它包含的東西像\這會弄亂你的正則表達式。正則表達式中有「保留」字符,你必須小心以免造成問題。

此外,而不是.*我用.+這意味着「之間一個和無限倍」,而不是「之間的零和無限時間」,所以它需要有至少一個其他字符在你的「段落」。您可能希望添加類似.{10,}的內容,該內容至少可以創建10個字符,具體取決於您的需求。

+0

謝謝大家的幫助。它的工作,但不是預期的。由於出現了多個字母G的情況,似乎我必須選擇另一種執行此任務的方式。所以現在,我正在考慮把這個段落放在雙括號中。 [[段落]],所以當執行正則表達式時,我會查找雙括號之間的所有內容。現在的語法是:string regex = @「[[。+」+「]]」; –

+0

我決定只用雙括號的子字符串。再次感謝你們! –