正则表达式在存储在变量中的电子邮件后找到前20个字符

时间:2013-11-21 01:23:48

标签: c# regex

string subject = null;
string toFind = "["+emailFound+"]([.20])";

        Match match = Regex.Match(messageText, toFind, RegexOptions.IgnoreCase);


            if (match.Success)
            {
                subject = match.Value;

        }    
    MessageBox.Show(subject);

这是我到目前为止的代码,我是regex的新手,并不太确定它是如何工作的。如何获得“emailFound”之后的前20个字符

由于

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

string toFind = Regex.Escape(emailFound)+"(?s)(.{20})";

(?s)允许点匹配换行符(您可以将其删除并在RegexOptions.SingleLine方法中添加Match。)

.{20}二十个字符

答案 1 :(得分:1)

  

没有更多错误,但现在它只是在emailFound之后找不到任何东西......

这是因为在检查匹配实例后需要获取Group值。

string toFind = Regex.Escape(emailFound) + "(?s)(.{20})";

Match match   = Regex.Match(messageText, toFind);

if (match.Success) {
  subject = match.Groups[1].Value; // Get the Group value
}   

请参阅live demo