【问题标题】:how to make two chunks of a string having characters too using c# [closed]如何使用c#制作两个有字符的字符串块[关闭]
【发布时间】:2016-09-04 18:03:14
【问题描述】:
4200 47 Street Alberta Beach, T0E 0A0 AB 780-544-0137

这是我的字符串也有字符值,最后一个字符有 - 其中是一个电话号码,我想制作两个块,所以我可以使用 c# 将电话号码保存在不同的变量中,并将第一个字母数字的东西保存在不同的变量中。谁能帮我怎么做? 我已经将正则表达式用于数字和字符串,例如

PhoneNumber = Regex.Replace(Addrs, "[^000-9--]+", string.Empty);

对于字符串,我也使用了正则表达式

Address = Regex.Replace(Addrs, @"[\d-]", string.Empty);

但是 问题是,地址也包含字符,这个正则表达式只会把字符分成一个,把字符串分成一个块

【问题讨论】:

  • 我们应该帮助您还是为您编写代码?我们不会做后者,你必须展示一些自己的负担。
  • 'String.Split(',')`?
  • @HimBromBeere 我现在该怎么办?
  • 这是什么问题?绝对不清楚你在问什么以及你已经尝试过什么。
  • @HimBromBeere 我想将电话号码存储在另一个变量中,并将字符串(也可能包含字符)存储在另一个变量中,但我已经尝试过但我在我的问题中更新了。当它将分成两个块时,地址的第一个字符也会出现在我的电话号码中

标签: c# split


【解决方案1】:

您可以使用regular expression。使用 http://regexr.com/ 之类的东西进行实验。

假设电话号码始终如所提供的示例所示,并且位于字符串的末尾,

\d{3}-\d{3}-\d{4}$
  • \d{3} = 正好 3 位数
  • 后跟破折号
  • \d{3} = 正好 3 位数
  • 后跟破折号
  • \d{4} = 正好 4 位
  • $ = 结束锚点

    string text = "4200 47 Street Alberta Beach, T0E 0A0 AB 780-544-0137";
    string pattern = @"\d{3}-\d{3}-\d{4}$"; 
    Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
    Match match = rgx.Match (text);
    if (match.Success) {
        string phoneNumber = match.Value;
        Console.WriteLine (phoneNumber); //780-544-0137
    
        string rest = text.Substring(0,text.Length-phoneNumber.Length);
        Console.WriteLine (rest);
    }
    

【讨论】:

  • 是的,电话号码将始终位于字符串 @robor78 的末尾
  • 谢谢我去试试
  • 这样我保存了我的电话号码,但我将如何将其余的字母数字部分保存在另一个变量中???
  • 我已经更新了我的答案。这有点骇人听闻。需要更多地了解输入字符串。
猜你喜欢
  • 1970-01-01
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 2016-08-03
  • 1970-01-01
相关资源
最近更新 更多