正则表达式模式寻找一个单词

时间:2014-09-11 07:20:41

标签: c# regex

我有以下正则表达式模式,以便在2次换行后删除所有字符。

(?<=.+[\r\n]+.+[\r\n]+)([\s\S]*)

我的问题是我还想添加一个特定文本的检查,例如在那两个换行符之后,如果找到它,就不要包含它。

以下是我在c#代码上的表现:

string newComment = string.IsNullOrEmpty(regexPattern) ? emailBody : new Regex(regexPattern, RegexOptions.IgnoreCase).Replace(emailBody, string.Empty);

修改

我想查找特定的文字,例如&#34;这是签名:&#34;然后,如果找到它,它不应该包括在它之后的任何东西,同时保持当前的设计,不包括2次换行后的所有内容

示例字符串:

string body = "Try comment.";
string additionalBody = "This is a signature";
string newBody = body + System.Environment.NewLine + additionalBody + System.Environment.NewLine + "asd Asd";

因此newBody应该产生3段文字。

它应显示&#34;尝试评论&#34;仅

可能的情况可能是:

1)在第一段或第二段,文本可以存在,应该自动删除。

2)如果自动签名不存在但有3段,则删除最后一段。

2 个答案:

答案 0 :(得分:0)

简单地说:

(?<=(?:.+[\r\n]+){2})([\s\S]*)This is a signature

答案 1 :(得分:0)

试试这个:

(?<=(?>.+[\r\n]+){2})(?:(?!\bThis is a signature\b)[\s\S])*