当前位置:编程学习 > C#/ASP.NET >>

求一正则表达

字符串格式如下:
"Application-Name: File Transfer\r\nApplication-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F795683}\r\nInvitation-Command: INVITE\r\nInvitation-Cookie: 52480090\r\nApplication-File: ODBC3.accdb\r\nApplication-FileSize: 372736\r\nConnectivity: N\r\nEncryption: R\r\n\r\n"
值是变化的,通过正则分别找出Application-Name,Application-GUID,Invitation-Command等对应的值来 --------------------编程问答-------------------- 不用正则
先将字符串按"\r\n"分割,split
然后对每一行找第一个:分割, 前面是name,后面是value
然后找你要的name的值 --------------------编程问答--------------------
string str = "Application-Name: File Transfer\r\nApplication-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F795683}\r\nInvitation-Command: INVITE\r\nInvitation-Cookie: 52480090\r\nApplication-File: ODBC3.accdb\r\nApplication-FileSize: 372736\r\nConnectivity: N\r\nEncryption: R\r\n\r\n";
                string[] strs = str.Split("\r\n".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
                foreach (string s in strs)
                {
                    string name = s.Substring(0, s.IndexOf(":"));
                    string value = s.Substring(s.IndexOf(":") + 1);
                    if (name == "Application-Name")
                        Console.WriteLine(value);
                }
--------------------编程问答-------------------- string _csdn ="Application-Name: File Transfer\r\nApplication-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F795683}\r\nInvitation-Command: INVITE\r\nInvitation-Cookie: 52480090\r\nApplication-File: ODBC3.accdb\r\nApplication-FileSize: 372736\r\nConnectivity: N\r\nEncryption: R\r\n\r\n";
            string _csdn_name = @"(?<=Application-Name:).+(?=\r\n)";
            MatchCollection _csdn_mc = Regex.Matches(_csdn, _csdn_name, RegexOptions.IgnoreCase);
            foreach (Match m in _csdn_mc)
            {
                Console.WriteLine(m.Value.ToString().Trim()); //m.Value 就是Application-Name对应所求的值;

            }
            Console.ReadLine();
            其他的匹配正则如下: 
            string _csdn_guid = @"(?<=Application-GUID:).+(?=\r\n)";
            string _csdn_invi = @"(?<=Invitation-Command:).+(?=\r\n)";
            就是把表达式中的.Application-Name 换成 Application-GUID ,或者Invitation-Command 等就可以了.
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,