基本上我需要计算一个字符串中的 agrupations 总数,这是为了显示一些信息,例如在正则表达式应用程序中打开的子标记表达式的总数的建议。
然后我需要计算关闭“()”的总数,而不是“(”的总数和“)”的总数分开。
例如在这个字符串中:
Hello (world)
预期的结果是:1 关闭
这里:
Hello (world) ((how are (you)?
预期的结果是:2 个关闭,2 个打开
和这里:
Hello ) ( World?
预期的结果是:2 打开
请问可以给我一些想法,哪些可以改进计算它们的方法?
我得到了“(”和“)”字符的总数,现在我不知道该怎么办。
更新:
我用这个字符串示例进行测试:
(((X)))
但是我有 4 个未关闭,只有 1 个关闭,我正在使用以下代码:
Public Function Replace_All_Characters_Except(ByVal str As String, _
ByVal chars As Char(), _
replaceWith As Char) As String
Dim temp_str As String = String.Empty
For Each c As Char In str
For Each cc As Char In chars
If c = cc Then temp_str &= cc
Next cc
Next c
Return temp_str
End Function
Dim Total_Parentheses As String = Replace_All_Characters_Except(TextBox_RegEx.Text, {"(", ")"}, String.Empty)
Dim Total_Unagrupated As Integer = Total_Parentheses.Replace("()", String.Empty).Length
Dim Total_Agrupated As Integer = (Total_Parentheses.Length - Total_Unagrupated) \ 2
MsgBox(Total_Parentheses)
MsgBox(Total_Unagrupated)
MsgBox(Total_Agrupated)