【问题标题】:C# get string from string [closed]C#从字符串中获取字符串[关闭]
【发布时间】:2014-02-06 18:55:20
【问题描述】:

我有这个代码:

["DATA",[],{"list":["100002788277842-2","100001011669968-2","100003141742254-2","100000874473252-2","100000100157923-2","1000065377867-4 2“,”100004300660153-2“,”100000627202286-2“,”100001649542414-2“,”10000001687548104-2“,”100000616160095-2“,”100004018411224802-0“,”100001526625563-2“ ,“100002802931617-0”,“100000959445370”,“,”100004335731372-0“,”100004335731372-3“,”1172027782-3“,”,“,”100001356181635-3“,”100001356181635- 0","100001526625563-3","100001526625563-0","100005292965027-3","100005292965027-0"]}

如何单独获取所有数字但没有“-”和它后面的数字? 例如:100002788277842(这是第一个)

【问题讨论】:

  • 在我看来这不像 C#。你的意思是那是你的文本,你想要代码来获取数字吗?你有没有尝试过?
  • 您尝试过的方法有什么不妥?
  • 你尝试过哪些技术?
  • 这都是一个字符串,我想将所有数字分别放入其他字符串中

标签: c# string get


【解决方案1】:
var numbers = str.Split(new [] { '"','-' },StringSplitOptions.RemoveEmptyEntries)
                 .Where(word => word.All(char.IsDigit) && word.Length > 1)
                 .ToList();

【讨论】:

  • 我该怎么做:为数字列表视图项目中的每个数字添加数字
  • 本网站不是交互式教程。
  • 为什么在查询的末尾有“为每个项目选择它”? Where 应该已经这样做了。
  • 没问题我解决了,谢谢
【解决方案2】:

我宁愿为此使用正则表达式。

var regex = new Regex(@"\d\d+", RegexOptions.Compiled);
foreach (Match m in regex.Matches(yourstring))
{
    var number = int.Parse(m.Value);
    ...
}

【讨论】:

    【解决方案3】:

    您可以尝试如下正则表达式:

    string s = @"[""DATA"",[],{""list"":[""100002788277842-2"",""100001011669968-2"",""100003141742254-2"",""100000874473252-2"",""100000100157923-2"",""100006537786749-2"",""100004300660153-2"",""100002922930370-2"",""100000627202286-2"",""100001649542414-2"",""100001687548104-2"",""100000616160095-2"",""100004018411224802-0"",""100001526625563-2"",""100002802931617-0"",""100002802931617-3"",""100000959445370"",""100004335731372-0"",""100004335731372-3"",""1172027782-3"",""1172027782-0"",""100001356181635-3"",""100001356181635-0"",""100001526625563-3"",""100001526625563-0"",""100005292965027-3"",""100005292965027-0""]}";
    
    string[] array = Regex.Matches(s, @"\d+(?=-)")
                          .Cast<Match>()
                          .Select(_ => _.Value)
                          .ToArray();
        
    /* 'array' contains:
    
    100002788277842
    100001011669968
    100003141742254
    100000874473252
    100000100157923
    100006537786749
    100004300660153
    100002922930370
    100000627202286
    100001649542414
    100001687548104
    100000616160095
    100004018411224802
    100001526625563
    100002802931617
    100002802931617
    100004335731372
    100004335731372
    1172027782
    1172027782
    100001356181635
    100001356181635
    100001526625563
    100001526625563
    100005292965027
    100005292965027
    
    */
    

    编辑:

    添加转义字符串

    【讨论】:

    • 但是这个字符串包含 "" 串,所以我需要将字符串从 "829737893718","78927498279" 转义为 \"829737893718\",\"78927498279\" 我该怎么做?
    • 我在答案中添加了转义字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多