HI, I am trying to Split the String based on the brackets. String given below,
Input String:
- String input = ADD((LENGTH(SUBSTRING(issue.quantity,FROM,1,2))),(LENGTH(issue.quantity1)))
I want a below output and stored into dynamic string array
Parent:
ADD((LENGTH(SUBSTRING(issue.quantity,FROM,1,2))),(LENGTH(issue.quantity1)))
Child:
(LENGTH(SUBSTRING(issue.quantity,FROM,1,2))),(LENGTH(issue.quantity1))
Child of Child:
LENGTH(SUBSTRING(issue.receipt,FROM,1,7))
SUBSTRING(issue.quantity,FROM,1,2))
issue.quantity,FROM,1,2
Child of Child:
LENGTH(issue.quantity1)
issue.quantity1
|---ADD
|----LENGTH
|----SUBSTRING
|----LENGTH
Because I want to rearrange this from end to start. I need to get the last child and after process of Child I have to merge it to Parent. likewise I have to merge each Child up to “ADD” again.
Here is my POC Code:
public static void GetNestedCheckedItems(string input, int level, parentclass objparentclass)
{
var regex = new Regex(@"
\( # Match (
(
[^()]+ # all chars except ()
| (?<Level>\() # or if ( then Level += 1
| (?<-Level>\)) # or if ) then Level -= 1
)+ # Repeat (to go from inside to outside)
(?(Level)(?!)) # zero-width negative lookahead assertion
\) # Match )",
RegexOptions.IgnorePatternWhitespace);
foreach (Match c in regex.Matches(input))
{
Multiplestring1.Add(c.Value.Remove(c.Length - 1).Substring(1));
}
StringBuilder builder = new StringBuilder();
foreach (var safePrime in Multiplestring1)
{
// Append each int to the StringBuilder overload.
builder.Append(safePrime).AppendLine(Environment.NewLine);
}
result = builder.ToString();
Multiplestring2.Add(result.Split(new string[] { "\r\n"},StringSplitOptions.RemoveEmptyEntries));
Multiplestring1.RemoveAt(1);
Multiplestring1.RemoveAt(0);
GetNestedCheckedItems(result, level + 1, objparentclass);
}
Here we couldn’t find any parent and child relationship.
Can anyone suggest me on this?
Thanks in Advance.