【发布时间】:2016-06-09 12:41:55
【问题描述】:
在我的一项任务中,我必须在错误状态的最后一组括号内找到错误的 ID。我列出了一些示例错误状态。
错误状态(字符串)看起来像,
Case 1: Bug A is resolved (XID: X015)
Case 2: Bug B is resolved (ZID: X016)
Case 3: Bug C is resolved (Data issue) (SID: X017)
对于案例 #1 和 #2 ,我编写了类似的代码,找到 ( 和 ) 的第一次出现,并计算括号内的值。
var start = value.IndexOf("(", StringComparison.Ordinal) + 1;
var end = value.IndexOf(")", start, StringComparison.Ordinal);
var BugID = value.Substring(start, end - start);
但是在案例 #3 中,有两组括号,第一组包含关于错误的摘要,下一组是实际错误 ID,我需要提取错误 ID。 我必须编写这样的代码,
var start = value.IndexOf(last "("); //index of last (
var end = value.IndexOf(last ")"); //index of last )
var BugID = value.Substring(start, end - start);
任何建议都会有所帮助!
【问题讨论】:
-
IndexOf(last, "(ID:")呢? -
这会有所不同。 :( 。仅括号不变。我已经相应地编辑了示例。@LasseV.Karlsen
-
value.LastIndexOf("(")怎么样 -
还有诸如正则表达式之类的东西......在这种情况下可能会有所帮助。
-
我相信如果你在字符串上做了
.Split(':'),那么你的ID应该在返回的string[]对象中作为splitString[1]。但是,可能会有一个可以轻松删除的尾随空格。
标签: c# regex string indexof brackets