求一正则表达
字符串格式如下:"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 _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[] 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_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#