Jey*_*ari 0 c# regex string brackets indexof
在我的一项任务中,我必须在 Bug 状态的最后一组括号内找到 Bug 的 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)
Run Code Online (Sandbox Code Playgroud)
对于案例 #1 和 #2 ,我进行了编码,找到 ( 和 ) 的第一次出现,并计算括号内的值。
var start = value.IndexOf("(", StringComparison.Ordinal) + 1;
var end = value.IndexOf(")", start, StringComparison.Ordinal);
var BugID = value.Substring(start, end - start);
Run Code Online (Sandbox Code Playgroud)
但是在案例#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);
Run Code Online (Sandbox Code Playgroud)
任何建议都会有所帮助!
像这样的东西:
String source = "Some (123) test (valid value) with ugly -> ( <- tricks";
String result = null; // what if source doesn´t have brackets?
int pClose = source.LastIndexOf(')');
if (pClose >= 0) {
int pOpen = source.LastIndexOf('(', pClose);
if (pOpen >= 0)
result = source.Substring(pOpen + 1, pClose - pOpen - 1);
}
...
// "valid value"
Console.Write(result);
Run Code Online (Sandbox Code Playgroud)