求一个正则表达式
匹配如此:
06:00:00 25 动画乐翻天:2012-91或者06:00:00 动画乐翻天:2012-91
(备注:各个之间的空格数不是固定的,如上例,一行可能有2列或者3列,目的就是替换中间的数字加空格或者多个空格为一个空格) 
得到
06:00:00 动画乐翻天:2012-91 

解决方案 »

  1.   

    下面是半角空格的正则,你贴的不是半角空格            string source = "06:00:00   25   动画乐翻天:2012-91";
                Regex reg = new Regex(@"(?is)((?<= )\d+(?= ))|( +)");
                source = reg.Replace(source, @" ");
      

  2.   

    额 就是我读取一个txt文本 他里面的每一行可能是这样的。
    比如:
    06:00:00 25 动画乐翻天:2012-92
    这是有3列的 
    我只想得到06:00:00 动画乐翻天:2012-92 时间后面是一个空格
    但是每列之间的空格数是不固定的(即读的每一行的3列之间的空格数)
    还有一种
    06:00:00 动画乐翻天:2012-92
    这是有2列的 中间的空格数也不是固定的(即读的每一行的2列之间的空格数)
    同样得到
    我只想得到06:00:00 动画乐翻天:2012-92 时间后面是一个空格
      

  3.   

    是这样么,替换一下就可以了
    string result="06:00:00 25 动画乐翻天:2012-91或者06:00:00 动画乐翻天:2012-91";
                    result = Regex.Replace(result, @"(?<=\d+:\d+:\d+)\s+?\d+?\s+|\s+", " ");//06:00:00 动画乐翻天:2012-91或者06:00:00 动画乐翻天:2012-91
      

  4.   

    (?<=\d+:\d+:\d+)\s+?\d+?\s+|\s+两个要求 
    1.时间后带空格+数字+空格
    2.多个空格
    以上两种情况均要替换成一个空格,于是第一种情况以时间格式06:00:00定位匹配后面的空格+数字+空格第二种情况只需要匹配多空格处,两种情况均匹配,统一替换成一个空格
      

  5.   

    嗯 稍微有点懂了 是不是要是前面的时间采取的是00:00的格式 
    我是不是还得加个|

    (?<=\d+:\d+)\s+?\d+?\s+|(?<=\d+:\d+:\d+)\s+?\d+?\s+|\s+
    这样?
    刚才试过可以。
    还有前面时间是否正确的判断 我还是放在C#里面分割出来在判断吧。
    封贴。。