2013-03-13 113 views
0

我正在使用以下正則表達式在文檔中查找以字符破折號開頭並以換行符字符/n結尾的任何系列字符。查找以 - 開頭並以換行符結尾的字符串

return @"(^--).*?(?=\r|\n)"; 

幾乎工作,但只有當該--和下一個字符之間的空間。

return @"(?:--\s).*?(?=\r|\n) 

幾乎工作,但只有當該--和下一個字符之間沒有空格。

我該如何獲得我的回報是否空間跟隨--

我對正則表達式一無所知,除了它的能力之外。我在網上找到了這兩種示例模式。感謝你的協助。

回答

1

您需要使用\s?來捕獲0或1個空格。

正則表達式中問號的一種用法是表示匹配前一個字符(或字符組)的0或一個匹配項,但不會超過一個。

另外,如果你有想學習正則表達式的慾望,請訪問http://www.regular-expressions.info進行學習,並使用http://www.regexpal.com進行練習。

+0

完美,那就是它。謝謝 – RThomas 2013-03-13 19:07:37

1

假設你是在一個較大的字符串搜索字符串,並希望獲得--之間的子串和\n你可以使用這樣的表達式:可以在C#中被引用這樣

--(.*)\r?\n 

@"--(.*)\r?\n" 

如果你只是想確保一個字符串--開始,以\n你可以使用結束:

(?s)^--.*\n\z 
+0

他想要捕捉任何東西,或只是在該位置的額外空間? – BlackVegetable 2013-03-13 18:58:59

+0

前綴與錨'^' – 2013-03-13 18:59:00

+1

@ByteBlast,我假設他正在尋找一個更大的字符串中的子字符串。 – Qtax 2013-03-13 19:00:00

相關問題