现在有一段字符串是【mycallback("Mission date");】这样的现在就想截取两个引号中间的Mission date,因为里边有可能会再出现一个引号,怎么能以最优的方式截取到中间的字符呢,中间可能什么符号都有额

解决方案 »

  1.   


    --思路都是一样的--定义字符串
    declare @t nvarchar(50)
    set @t='【mycallback("Mission date");】'
    --查看结果
    select left(right(@t,len(@t)-charindex('"',@t)),
    charindex('"',right(@t,len(@t)-charindex('"',@t)))-1)
    /*
    Mission date
    */
      

  2.   


    declare @t nvarchar(50)
    set @t='【mycallback("Mission"date");】'
    如果是这样的你想要什么结果呢?Mission?date?why?
      

  3.   

    当然是保留Mission"date了额。。只要在mycallback("");这里出现的字符全都保留额。。
      

  4.   

    写个正则就可以了string text = "【mycallback(\"Mission date\");】";      
            text= Regex.Match(text,@"(?<=[\(][""]).*(?=[""])").ToString();
            Response.Write(text);楼主拿去~
      

  5.   

    substring这个好像弄起来很复杂,
      

  6.   

    这个的话,mycallback("");里什么东西都没问题么。。里边再加引号也不会再截断吧。。里边的数据长度和内容是不一定的额
      

  7.   

    substring和这种正则方式截取,那种比较快呢???正则的运行速度会比substring快么?
      

  8.   

        class Program
        {
            static void Main(string[] args)
            {
                string str = @"【mycallback(""Mission date"");】";
                Regex rgx = new Regex(@"【mycallback\(""(.*?)""\);】");
                Console.WriteLine(rgx.Match(str).Groups[1].Value);
            }
        }
      

  9.   

    LZ意思是,字符串可能是mycallback("Mission date"),mycallback("Mission date",“啊啊”),
    mycallback(“mycallback("aa")mycallback("ff")”,"Mission date")是把?
    如果这样,还是偏向于用正则吧
      

  10.   

    恩,是的,不过mycallback("里边的的字符不定,外围固定就是这样");
    谢谢大家给的方案额
      

  11.   

    恩。里边可能还会出现额。。mycallback("里边"的的字"符不定,外围固(定)就;是"这样");
    这也说不定的这样截出来应该是[里边"的的字"符不定,外围固(定)就;是"这样]