我有很长的字符串,它们是 IMAP 请求的响应,我想从中提取一些值。它通常的格式类似于“x someword”或“someword x” - 如何获取某个单词(已知)的x(它可以超过一位数字)?响应的每一“行”如下所示:
* x someword \r\n
我的字符串包含几行。提取所需值的最简单方法是什么?
例子:
对于“* x word1\r\n* y word2\r\n”,以 word2 作为参数我想得到 y
整个响应示例:
* FLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen)\r\n* OK [PERMANENTFLAGS ()] Flags permitted.\r\n* OK [UIDVALIDITY xxx] UIDs valid.\r\n* 3 EXISTS\r\n* 0 RECENT\r\n* OK [UIDNEXT x] Predicted next UID.\r\n. OK [READ-ONLY] INBOX selected. (Success)\r\n
对于“EXISTS”我想要得到3。
我会使用正则表达式...您可以执行以下操作:
string myString = "* FLAGS (\\Answered \\Flagged \\Draft \\Deleted \\Seen)\r\n* OK [PERMANENTFLAGS ()] Flags permitted.\r\n* OK [UIDVALIDITY 657136382] UIDs valid.\r\n* 3 EXISTS\r\n* 0 RECENT\r\n* OK [UIDNEXT 4] Predicted next UID.\r\n. OK [READ-ONLY] INBOX selected. (Success)\r\n";
string myWordToFind = "EXISTS";
string result = Regex.Match(myString, @"(?<MyNumber>\d+)\s*(" + Regex.Escape(myWordToFind) + ")",
RegexOptions.Compiled | RegexOptions.IgnoreCase)
.Groups["MyNumber"].Value;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)