我有这段代码:
[ “DATA”,[],{ “列表”:[ “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”]}
我怎样才能单独获得所有数字但没有“ - ”以及之后的数字? 例如:100002788277842(这是第一个)
答案 0 :(得分:1)
var numbers = str.Split(new [] { '"','-' },StringSplitOptions.RemoveEmptyEntries)
.Where(word => word.All(char.IsDigit) && word.Length > 1)
.ToList();
答案 1 :(得分:1)
我宁愿使用正则表达式。
var regex = new Regex(@"\d\d+", RegexOptions.Compiled);
foreach (Match m in regex.Matches(yourstring))
{
var number = int.Parse(m.Value);
...
}
答案 2 :(得分:1)
您可以按如下方式尝试正则表达式:
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
*/
添加了转义字符串