X:='ABC’C#中提取单引号内的字符串 得出:ABC

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s = Regex.Match("X:='ABC'", @"'(.*)'").Groups[1].Value;
                Console.WriteLine(s);
            }
        }
    }
      

  2.   

    如果是从richtextbox中提取单引号中的内容存放到字符串数组string[] v中?
      

  3.   

    一样的string[] s = Regex.Matches(richTextBox1.Text, @"'(.*?)'").Cast<Match>().Select(x => x.Groups[1].Value).ToArray();
      

  4.   

    使用正则表达的方法:
    string s = Regex.Match("X:='ABC'", @"'(.+)'").Groups[1].Value;
    使用substring的方法
    s = s.Substring(s.IndexOf("'")+1, s.LastIndexOf("'") - s.IndexOf("'")-1);
      

  5.   

    3楼试了。。说不包含Cast定义
      

  6.   

    加上using Systen.Linq;或者你用foreach循环自己写下。
      

  7.   

    对了。反过来如何提取单引号X:='ABC'如果此字符串,如何判断缺少了一个单引号
    X:=ABC'
      

  8.   


    那你需要处理二义性文法,比如
    X:='X:=ABC' 究竟缺不缺单引号?
    X:='ABC Y:=ABC'呢?还有X:='Y:='ABC''
    X:='ABC' Y:='ABC'究竟是X:='ABC';Y:='ABC'还是X=ABC' Y:='ABC
    等等。
      

  9.   

    测试代码:
    program  example2;
    var  A,B,C:integer;
         X,Y:bool;
    begin  /*  this  is  an  example  
      A:=B*C+37;
      X:=ABC’
    end.
    测试这个代码里面有几个词法错误
    如begin  /*  this  is  an  example  缺少了*/
      X:=ABC’缺少了'
    我自己编写了
     for(int s=0;s<str1.Length;s++)
                {
                    if (str1[s].ToString().IndexOf(界符[3].ToString()) > -1 && str1[s].ToString().IndexOf(界符[10].ToString()) == -1)
                    {
                        STR += "缺少" + 界符[10].ToString();
                        val = str1[s].Length;
                    }
                    if (str1[s].ToString().IndexOf(界符[3].ToString()) == -1 && str1[s].ToString().IndexOf(界符[10].ToString()) > -1)
                    {
                        STR += "缺少" + 界符[3].ToString();
                    }
                }
    进行检测,但是那个缺少单引号的就不知道怎么检测