求字符串截取问题。。。。。

Times_ORZ 2013-05-14 05:23:21
将一组字符串类似于这样:合作英语2012-5-28合作英语22012-5-28
最终想得到:

2012-5-28合作英语\n\r2012-5-28合作英语2
...全文
188 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Times_ORZ 2013-05-15
  • 打赏
  • 举报
回复
感谢楼上各位帮忙,我在知道也发了这个问题,有人回复的这个

string str = "合作英语2012-5-28合作英语22012-5-28";
Regex regex = new Regex(@".*?\d{4}-\d{1,2}-\d{1,2}");
int startPos = 0;
List<string> result = new List<string>();
for(;;)
{
    Match match = regex.Match(str, startPos);
    if (match.Success == false) break;
    result.Add(match.Value);
    startPos += match.Length;
}

StringBuilder sb = new StringBuilder();
foreach (string s in result)
    sb.AppendLine(s);

str = sb.ToString();
暮归老牛 2013-05-14
  • 打赏
  • 举报
回复
结合正则表达式 开辟两个数组 一个专门存汉字字符串 一个专门存数字字符串 两个数组长度相等
caodongjie 2013-05-14
  • 打赏
  • 举报
回复
这个比较难搞, 格式固定。比如:合作英语2012-5-28合作英语22012-5-28 那就固定截取 格式不固定:那就根据自符的字节长度(bt)值获取到位置然后截取
F15Eagle 2013-05-14
  • 打赏
  • 举报
回复
同意楼上,还有数值在里头,不能根据数值分隔,没有分隔字符很难搞了,除非根据日期当中的横杠,倒推几位。
City_member 2013-05-14
  • 打赏
  • 举报
回复
如果你这句话没有通过的属性很难这样弄,比如中间如果有“#”之类的隔开就很容易

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧