我正在使用正則表達式來檢索段落。我的字符串變量中的段落包含開始字母G.並以變量@Variable結尾。REGEX C#(匹配開始和結束詞)
我會用什麼模式來抓取該段落?我正在使用下面的代碼,但我認爲我真的關閉了。
Regex.Match(paragraph, @"\G. .*\@Variable$");
我正在使用正則表達式來檢索段落。我的字符串變量中的段落包含開始字母G.並以變量@Variable結尾。REGEX C#(匹配開始和結束詞)
我會用什麼模式來抓取該段落?我正在使用下面的代碼,但我認爲我真的關閉了。
Regex.Match(paragraph, @"\G. .*\@Variable$");
這將是這樣的:
string regex = @"G.+" + variable.ToString()
Regex.Match(paragraph, regex);
當你在它搶Expresso副本 - 使這樣的任務更容易。
我想你可能會尋找這樣的事情:
Regex.Match(paragraph, string.Format(@"^G.*?{0}$", yourVariableHere));
我想這是你想要的(如果我理解你的要求):
string regex = @"G.+" + variable;
Regex.Match(paragraph, regex);
幾件事情要注意,你必須要小心的是在variable
如果它包含的東西像\
這會弄亂你的正則表達式。正則表達式中有「保留」字符,你必須小心以免造成問題。
此外,而不是.*
我用.+
這意味着「之間一個和無限倍」,而不是「之間的零和無限時間」,所以它需要有至少一個其他字符在你的「段落」。您可能希望添加類似.{10,}
的內容,該內容至少可以創建10個字符,具體取決於您的需求。
謝謝大家的幫助。它的工作,但不是預期的。由於出現了多個字母G的情況,似乎我必須選擇另一種執行此任務的方式。所以現在,我正在考慮把這個段落放在雙括號中。 [[段落]],所以當執行正則表達式時,我會查找雙括號之間的所有內容。現在的語法是:string regex = @「[[。+」+「]]」; –
我決定只用雙括號的子字符串。再次感謝你們! –
有兩件事,第一,爲什麼'\ G'沒有必要逃避我所知道的G?其次,我想你會想''+'',這樣你就可以得到'一個或多個'而不是'零或多個'。 – CodingGorilla
@CodingGorilla - 積分 - 非常感謝您指出這些 –