假设有如下字符串:
SDE.LG_建筑物.AREA="0" SDE.LG_水体.PERIMETER="190.603688781" SDE.LG_建筑物.B_="632" SDE.LG_建筑物.B_ID="1630" SDE.LG_标注.GB="32029" SDE.LG_建筑物.NAME="" SDE.LG_建筑物.LEVE="A" #SHAPE#="[Geometry]" SDE.LG_运动场所.OBJECTID="20431"
我要把SDE.LG_建筑物.,SDE.LG_水体.,SDE.LG_标注.,SDE.LG_运动场所.等全部替换掉,最后得到如下的结果:
AREA="0" PERIMETER="190.603688781" B_="632" B_ID="1630" GB="32029" NAME="" LEVE="A" #SHAPE#="[Geometry]" OBJECTID="20431"

解决方案 »

  1.   

    用正则表达式吧
    将这个东西滤掉:SDE.LG_***.
      

  2.   

    SDE.LG_***. ?
    中文怎么办?而且中文部分长度不一定。
      

  3.   

    string str = @"SDE.LG_建筑物.AREA=""0"" SDE.LG_水体.PERIMETER=""190.603688781"" SDE.LG_建筑物.B_=""632"" SDE.LG_建筑物.B_ID=""1630"" SDE.LG_标注.GB=""32029"" SDE.LG_建筑物.NAME="""" SDE.LG_建筑物.LEVE=""A"" #SHAPE#=""[Geometry]"" SDE.LG_运动场所.OBJECTID=""20431""";
    Regex regex = new Regex("(AREA=\".*?\").+?(PERIMETER=\".*?\").+?(B_=\".*?\").+?(B_ID=\".*?\").+?(GB=\".*?\").+?(NAME=\".*?\").+?(LEVE=\".*?\").+?(#SHAPE#=\".*?\").+?(OBJECTID=\".*?\")");
    Match m = regex.Match(str);
    int count = m.Groups.Count;
    StringBuilder sb = new StringBuilder();
    for(int i = 1; i < count; ++i)
    {
        sb.AppendFormat("{0} ", m.Groups[i]);
    }Console.WriteLine(sb.ToString().Trim());