C# Regex查找存储在变量中的电子邮件后的前20个字符
这是我到目前为止掌握的代码,我对regex非常陌生,不太清楚它是如何工作的。“emailFound”之后的前20个字符如何获取 谢谢你可以试试这个:C# Regex查找存储在变量中的电子邮件后的前20个字符,c#,regex,C#,Regex,这是我到目前为止掌握的代码,我对regex非常陌生,不太清楚它是如何工作的。“emailFound”之后的前20个字符如何获取 谢谢你可以试试这个: string subject = null; string toFind = "["+emailFound+"]([.20])"; Match match = Regex.Match(messageText, toFind, RegexOptions.IgnoreCase); if (match.Suc
string subject = null;
string toFind = "["+emailFound+"]([.20])";
Match match = Regex.Match(messageText, toFind, RegexOptions.IgnoreCase);
if (match.Success)
{
subject = match.Value;
}
MessageBox.Show(subject);
(?s)
允许点匹配换行符(您可以删除它并在匹配
方法中添加RegexOptions.SingleLine
)
{20}
二十个字符
没有更多的错误,但现在它只是找不到任何东西后,电子邮件发现 这是因为您需要在检查匹配实例后获取值
string toFind = Regex.Escape(emailFound)+"(?s)(.{20})";
请参见
[.20]
表示“匹配这些字符中的任何一个”
,2
或0
”不起作用,恐怕我正在进行“解析”\Qanyemail@gmail.com\E(?s)(.{.20})“-无法识别的转义序列\E@ÁppleAssassin11:抱歉,\Q..\E
功能在.net中不存在。您必须改用Regex.Escape
。)没有更多的错误,但现在它只是在发现邮件后才发现任何东西……非常令人沮丧@Áppleassassinsin11:你想找到什么?
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
}