可以匹配以下情况,
~/Stock.html   
~/Stock.html?dsfds=sf&fd=3  这种情况取得Stock~/Stock---600000.html
~/Stock---600000.html?dsfds=sf&fd=3    这种情况取得Stock和600000~/Stock---600000---312.html
~/Stock---600000---312.html?dsfds=sf&fd=3   这种情况取得Stock和600000和312~/Stock---600000---312---83.html
~/Stock---600000---312---83.html?dsfds=sf&fd=3 这种情况取得Stock和600000和312和83
并且可以获得相应的值,Stock,60000,312,83:
Stock部分可变必须有(必有),
600000必须是6位的数字(可选),
312必须是数字(可选)
83必须是数字(可选)
?dsfds=sf&fd=3(可选) test

解决方案 »

  1.   


    "^~/(?<s>stock)(---(?<d1>\d{6}))?(---(?<d2>\d+))?(---(?<d3>\d+))?"Groups["s"] Stock
    Groups["d1"] 第一组数字 如果有
    Groups["d2"] 第二组数字 如果有
    Groups["d3"] 第三组数字 如果有
      

  2.   

    不区分大小写匹配 IgnoreCase
      

  3.   


    "^~/(?<s>stock)(---(?<d1>\d{6})(---(?<d2>\d+)(---(?<d3>\d+))?)?)?\.html"//再改一下 
      

  4.   

    第一步string pstr = @"Stock(---\d{6}(---\d+)*)*\.html\?";
    取出string str = "Stock---600000---312---83.html?"等字符串
    第二步将取出的字符串str = str.Replace(".html?","").Replace("---","-");
    string[] strs = str.Split('-');
    strs为结果