用正则表达式解析字符串

Amc*_*tty 2 c# regex

我正在尝试搜索字符串中的电子邮件地址,但是当字符串包含除电子邮件之外的其他字符时,我的正则表达式不起作用.意思是,如果我尝试像"me@email.com"这样的小字符串,正则表达式会找到一个匹配项.如果我在字符串中插入一个空格,例如:"me@mail.com",则正则表达式找不到电子邮件匹配项.

这是我的代码(正则表达式模式来自网络):

            string emailpattern = @"^(([^<>()[\]\\.,;:\s@\""]+"

                    + @"(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@"

                    + @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

                    + @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+"

                    + @"[a-zA-Z]{2,}))$";
            Regex rEmail = new Regex(emailpattern);
            string str = @" me@mail.com";
            MatchCollection mcolResults = rEmail.Matches(str);
            MessageBox.Show(mcolResults.Count.ToString());
Run Code Online (Sandbox Code Playgroud)

请让我知道我做错了什么.

谢谢.

最好的祝福,

Mar*_*ell 5

^并且$(分别)表示输入文本的开始和结束(或多行模式中的行) - 通常用于检查整个文本(或行)是否与模式匹配.所以,如果你不想那样,就把它们拿走吧.


Dav*_*vid 5

从开头和结尾删除^和$.它们分别表示"字符串的开头"和"字符串的结尾".