2013-10-15 51 views
-2

我在工作的C#代碼中發現了這個正則表達式。有人能向我解釋,請:有人可以向我解釋這個正則表達式

@"(?s)\{\{\s*" + templateTitle + @"(.*?)}}\r?\n?" 

我測試,它返回類似

{{ templateTitleValue  anything}} 

文字我不明白的是兩個「}}」不是由\像逃脫他們倆 '}}'。什麼是「(?s)」。

感謝

+0

作爲一個工具:http://regexr.com?36ohq – gunr2171

+0

如果這個表單是你需要的東西,你可以隨着它添加這個問題。 – sln

回答

6

其實,你並不需要躲避開括號要麼。從上下文清楚的是,它們不是量詞(如在X{1,3}中將匹配X,XXXXX)。但是,無論如何逃避它們(也是爲了逃避關閉的)是一種很好的習慣,以防萬一正則表達式變成某種含糊不清的東西。

(?s)表示「允許點(.)匹配全部個字符,包括換行符」。這也被稱爲Singleline or DOTALL option

相關問題