如字符串: <id>aa</id><name>cat</name>
如何根据分隔符<id>与</id>取出aa ,根据分隔符<name>与</name>取出cat ?
有系统的函数可用吗?

解决方案 »

  1.   

    你这个是在哪里的? 是在XML 里面的么? 在XML 里面 有专门的方法读取
      

  2.   

    不是用在XML 里面的,是定义函数里用的。
      

  3.   

    正则表达式(?<=\<id\>)(?<id>[^\<]+)(?=</id>).*?(?<=\<name\>)(?<name>[^\<]+)(?=</name>)手写的没测试
      

  4.   

    有。。用专门读取引导文件的api
      

  5.   

    谢谢jiangshun, vb如何写?
      

  6.   


            #region 获得字符串中开始和结束字符串中间得值
            /// <summary>
            /// 获得字符串中开始和结束字符串中间得值
            /// </summary>
            /// <param name="begin">开始匹配标记</param>
            /// <param name="end">结束匹配标记</param>
            /// <param name="html">Html字符串</param>
            /// <returns>返回中间字符串</returns>
            public MatchCollection GetMidValue(string begin, string end, string html)
            {
                Regex reg = new Regex("(?<=(" + begin + "))[.\\s\\S]*?(?=(" + end + "))", RegexOptions.Multiline | RegexOptions.Singleline);
                return reg.Matches(html);
            }
            #endregion
      

  7.   

    谢谢:xinmeng08
       能说说vb如何写吗?
      

  8.   

    通过截取字串方式实现
    string str = "<id>aa</id><name>cat</name>";
    string strS1 = "<id>";
    string strS2 = "</id>";
    string strId = str.Substring(str.IndexOf(strS1), str.IndexOf(strS2));
    Response.Write(strId);
      

  9.   

    Dim rx As New Regex(?<=\<id\>)(?<id>[^\<]+)(?=</id>).*?(?<=\<name\>)(?<name>[^\<]+)(?=</name>)$")
    Dim test  As String = "<id>aa</id><name>cat</name>"
    Dim matches As MatchCollection = rx.Matches(text)
    For ctr As Integer = 0 To Matches.Count - 1
        Console.WriteLine(matches.Item(ctr).Value)
    Next
      

  10.   

    谢谢:taomanman
    问题解决!
      

  11.   

    我觉得9楼的朋友说的不错,应该用字符串截取方法SubString()
    因为你已经知道了分隔符号,这样直接用字符串截取方法更好些:
    string str = "<id>aa</id><name>cat</name>";
    string strS1 = "<id>";
    string strS2 = "</id>";
    string strId = str.Substring(str.IndexOf(strS1), str.IndexOf(strS2));
    Response.Write(strId);