正则表达式模式寻找一个单词
我有以下正则表达式模式删除2行换行后的所有字符。
(?<=.+[\r\n]+.+[\r\n]+)([\s\S]*)
我的问题是我还想添加一个特定文本的检查,例如在那2个换行符之后,如果找到它,就不要包含它。
以下是我在c#代码中的操作方法:
string newComment = string.IsNullOrEmpty(regexPattern) ? emailBody : new Regex(regexPattern, RegexOptions.IgnoreCase).Replace(emailBody, string.Empty);
编辑
我想查找一个特定的文本,例如“这是签名:”然后如果找到它,它不应该被包含在它之后的任何东西,同时保持当前的设计,不包括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段文字。
它应该只显示“尝试评论”。
可能的情况可能是:
1)在第一段或第二段,文本可以存在,应自动删除。
2)如果自动签名不存在但有3段,则删除最后一段。
试试这个:
(?<=(?>.+[\r\n]+){2})(?:(?!\bThis is a signature\b)[\s\S])*
怎么样简单:
(?<=(?:.+[\r\n]+){2})([\s\S]*)This is a signature