字符串如下:
2007-3-29-bg-020820071087080632.jpg
描述如下:
(年:1900-2100)-(月:1-12)-(日:1-31)-bg-(接着是一个18为的数字字符串).jpg
检查第四段bg是否为bg
用正则比较完后,分别取出年,月,日,和那个18为的数字字符串。
谢谢,求正则和截取两部分代码!
欢迎高手指教!

解决方案 »

  1.   


    void Main()
    {
    string str="2007-3-29-bg-020820071087080632.jpg";
    if(Regex.IsMatch(str,@"(?i)(?<=-)\d{18}(?=\.jpg)"))
    {
    Console.WriteLine("bg 符合规范!");
     Match m=Regex.Match(str,@"^(?<year>\d{4})-(?<month>\d{1,2})-(?<day>\d{1,2})-bg-(?<note>\d{18}).jpg$");
     Console.WriteLine(m.Groups["year"].Value);
     Console.WriteLine(m.Groups["month"].Value);
     Console.WriteLine(m.Groups["day"].Value);
     Console.WriteLine(m.Groups["note"].Value);
    }
    else
    {
    Console.WriteLine("bg 不符合规范!");
    }
    }/*
    bg 符合规范!
    2007
    3
    29
    020820071087080632
    */
      

  2.   

    而且,这段正则能解释下吗,哪几个字符是判断bg符合的呢?
    if(Regex.IsMatch(str,@"(?i)(?<=-)\d{18}(?=\.jpg)"))
      

  3.   

     我给你的代码就是C/S模式下的啊(?i)(?<=-)\d{18}(?=\.jpg) 意思是取 -之后  .jpg之前的内容:(18位数字)
      

  4.   

    值取出来了,是我的问题,同时还是请教下:
    (?i)(?<=-)\d{18}(?=\.jpg)
    这段正则式怎么判断bg符合的?
      

  5.   

    (?i)(?<=-)\d{18}(?=\.jpg)
    这段正则式怎么加入判断bg符合,该怎么改,呵呵,真不太会!
      

  6.   

    http://download.csdn.net/source/2844387我给你的代码已经判断了啊
      

  7.   

    string str="2007-3-29-bg-020820071087080632.jpg";
    我在bg那改了改,还是能过去if(Regex.IsMatch(str,@"(?i)(?<=-)\d{18}(?=\.jpg)"))的!
    只不过过去后,m中没有值!