比如有这么一个SQL语句"SELECT * FROM 
   WHERE AAA='"+CTR0001.TEXT+"' AND BBB='"+CTR0002.SELECTTEXT+"'";现在就想把里面的FCR0001和2找出来
这个编号是固定长度的!!

解决方案 »

  1.   

    你这里 CTR0001.TEXT 这不是字符串,怎么取?
      

  2.   

    不,忘了说明了,它就是一个字符串
    "SELECT * FROM 
       WHERE AAA='\"+CTR0001.TEXT+\"' AND BBB='\"+CTR0002.SELECTTEXT+\"'";
      

  3.   

    try {
    Regex RegexObj = new Regex("(?<=\\+)\\w*?(?=\\.)");
    Match MatchResults = RegexObj.Match(SubjectString);
    while (MatchResults.Success) {

    MatchResults = MatchResults.NextMatch();

    } catch (ArgumentException ex) {
    // Syntax error in the regular expression
    }
      

  4.   

    楼上的哥哥,
    你说的找不到啊1。要查的那个字符串是有固定格式的,如CTR打头,共8位,CRT00001
      

  5.   

    唉,,自已解决了,
    FCR\s*\d{0,6}不知大家还有没有更好的方法!!!
      

  6.   

    下面的也可以
    string SubjectString = "SELECT * FROM WHERE AAA='\"+CTR0001.TEXT+\"' AND BBB='\"+CTR0002.SELECTTEXT+\"'";
    Regex RegexObj = new Regex("CTR\\w*");
    Match MatchResults = RegexObj.Match(SubjectString);
    while (MatchResults.Success) 
    {
    MessageBox.Show(MatchResults.Value);
    MatchResults = MatchResults.NextMatch();
    }
      

  7.   

    下面的也可以
    try 
    {
    string SubjectString = "SELECT * FROM WHERE AAA='\"+CTR0001.TEXT+\"' AND BBB='\"+CTR0002.SELECTTEXT+\"'";
    Regex RegexObj = new Regex("(?<=\\+)\\w*?(?=\\.)");
    Match MatchResults = RegexObj.Match(SubjectString);
    while (MatchResults.Success) 
    {
    MessageBox.Show(MatchResults.Value);
    MatchResults = MatchResults.NextMatch();


    catch (ArgumentException ex) 
    {
    // Syntax error in the regular expression
    }