将字符串解析为两部分(如电子邮件地址)C#

时间:2015-10-30 07:52:43

标签: c# .net string parsing

如何将像Name@yahoo.com这样的字符串解析为消息框

Name: Name
Doman: yahoo.com

(没有@符号)

我知道如何设置消息框等,但我很难弄清楚如何将电子邮件字符串分成两个单独的字符串并删除过程中的@符号。

编辑:如果用户在文本框中定义字符串,如何拆分它?

如:

 string email = "";

6 个答案:

答案 0 :(得分:9)

使用MailAddress Class

var async = require('async'),
    mongodb = require('mongodb'),
    MongoClient = mongodb.MongoClient;

MongoClient.connect("mongodb://localhost/test",function(err,db) {

  var collection = db.collection('testme');

  async.series(
    [
      function(callback) {
        collection.deleteMany({},callback);
      },
      function(callback) {
        collection.insert(
          [
            { "data": 1 },
            { "data": 2 }
          ],
          callback
        );
      },
      function(callback) {
        collection.deleteMany({},function(err,result) {
          console.log(JSON.stringify(result));
          console.log(JSON.stringify(result.result.n));
          callback(err);
        });
      }
    ],
    function(err) {
      db.close();
    }
  );

});

答案 1 :(得分:3)

使用String.Split

拆分字符串
string source = "Name@yahoo.com";
var parts = source.Split('@');
var name = parts[0];
var domain = parts[1];

答案 2 :(得分:3)

使用String.Split

var strings = yourFullString.Split('@');

var name = strings[0];
var domain = strings[1];

答案 3 :(得分:1)

您可以使用String.Split

string data = "Name@yahoo.com";
var stringArray = data.Split('@');

var name = stringArray[0];
var email = stringArray[1];

您也可以使用Regex.Split

string data = "Name@yahoo.com";
string pattern = "@";            // Split on @

string[] substrings = Regex.Split(data , pattern);
var name = substrings[0];
var email = substrings[1];

答案 4 :(得分:1)

不使用单独的辅助变量的方法是:

var name = data.Substring(0, data.indexOf('@'));
var domain = data.Substring(data.indexOf('@') + 1);

答案 5 :(得分:-1)

使用内置的.Net类。这很容易,您不应该看到Regular expressionsString类的方法。 原因

  • 没有确切的正则表达式可以解析任何电子邮件,因为某些电子邮件可能有非常罕见的标志,如"'~!,*
  • 如果您使用string类的方法,可能会有很多不必要的代码。

使用MailAddress类非常简单:

System.Net.Mail.MailAddress mailAddress = new System.Net.Mail.MailAddress("BobValery@mail.com");
string address = mailAddress.Address;
string name = mailAddress.DisplayName;
string host = mailAddress.Host;
string user = mailAddress.User;