编译原理还是要学的,但是如果是做工程的话,还是学习使用Regex(正则表达式);
using System.Text.RegularExpression;
string ParseString(string input)
{
     Regex re=new Regex("<(.*?)>(.*?)</(.*?)>(#|&)?");     System.Text.StringBuilder sb=new System.Text.StringBuilder();
     Match m=re.Match(input);
     while(m.Success)
     {
          sb.Append(m.Groups[2].Value);
          if(m.Groups.Count==5)//说明有操作符
          {
               sb.Append((m.Groups[4].Value=="#")?" or ":" and ");
           }
     }
     return sb.ToString();
}
不过我没有编译环境,所以不知道上面的程序有没有错误.

解决方案 »

  1.   

    搞什么飞机?你把你的字符串用xml来正确表达
    然后用xmldocument解析,不就搞定了吗?
      

  2.   

    谢谢大家,不采用XML是因为项目组中的成员都不怎么熟悉XML,所以使用格式字串将之封装成类进行处理,效果还是很好的,
    上面提到的我已经解决了,只要针对“#”标识进行分离,再循环解析就OK了,对格式字串有兴趣的朋友我们可以共同交流。再次感谢大家给我提的好建议。