查找以 - 开头并以换行符结尾的字符串

问题描述:

我正在使用以下正则表达式在文档中查找以字符破折号开头并以换行符字符/n结尾的任何系列字符。查找以 - 开头并以换行符结尾的字符串

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

几乎工作,但只有当该--和下一个字符之间的空间。

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

几乎工作,但只有当该--和下一个字符之间没有空格。

我该如何获得我的回报是否空间跟随--

我对正则表达式一无所知,除了它的能力之外。我在网上找到了这两种示例模式。感谢你的协助。

您需要使用\s?来捕获0或1个空格。

正则表达式中问号的一种用法是表示匹配前一个字符(或字符组)的0或一个匹配项,但不会超过一个。

另外,如果你有想学习正则表达式的欲望,请访问http://www.regular-expressions.info进行学习,并使用http://www.regexpal.com进行练习。

+0

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

假设你是在一个较大的字符串搜索字符串,并希望获得--之间的子串和\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