不完全确定这是可能的,但是说我有两个这样的字符串:
"IAmAString-00001" "IAmAString-00023"
通过向上移动最终数字的索引,从IAmAString-0001迭代到IAmAString-00023会有什么快速的方法?
问题比这更普遍,例如我可以处理的字符串可以是任何格式,但最后一串字符将始终是数字,所以类似于Super_Confusing-String#w00t0003,在这种情况下,最后的0003将是是我用来迭代的东西.
有任何想法吗?
解决方法
string start = "IAmAString-00001"; string end = "IAmAString-00023"; // match constant part and ending digits var matchstart = Regex.Match(start,@"^(.*?)(\d+)$"); int numberstart = int.Parse(matchstart.Groups[2].Value); var matchend = Regex.Match(end,@"^(.*?)(\d+)$"); int numberend = int.Parse(matchend.Groups[2].Value); // constant parts must be the same if (matchstart.Groups[1].Value != matchend.Groups[1].Value) throw new ArgumentException(""); // create a format string with same number of digits as original string format = new string('0',matchstart.Groups[2].Length); for (int ii = numberstart; ii <= numberend; ++ii) Console.WriteLine(matchstart.Groups[1].Value + ii.ToString(format));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。