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

时间:2013-03-13 18:55:24

标签: c# regex

我使用以下正则表达式在文档中找到以字符划线短划线--开头并以换行符/n结尾的任何字符系列。

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

几乎可以工作,但只有当--和下一个角色之间有空格时才会有效。

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

几乎可以工作,但只有当--和下一个字符之间没有空格时才会有效。

如何检查空格是否跟随--

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

2 个答案:

答案 0 :(得分:1)

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

在正则表达式中使用问号是为了表示前一个字符(或一组字符)的0或一个匹配将匹配,但不会超过一个。

另外,如果您希望自己学习正则表达式,请访问http://www.regular-expressions.info学习并http://www.regexpal.com练习。

答案 1 :(得分:1)

假设您正在搜索较大字符串中的子字符串并想要捕获--\n之间的子字符串,您可以使用如下表达式:

--(.*)\r?\n

可以在C#中引用这样的内容:

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

如果您只是想确保字符串以--开头并以\n结尾,您可以使用:

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