我需要在VB.Net中拆分后返回字符串的值。
字符串将是:
someexpression1 OR someexpression2 OR someexpression3 OR someexpression4 OR someexpression5
字符串不能包含3个以上的表达式,因此我需要在某些表达式后检索所有内容。
分割之后我需要以下"或者someexpression4或someexpression5",完整的字符串将始终是不同的长度所以我需要一些动态的东西来捕获字符串的最后部分。
答案 0 :(得分:1)
如果没有关于你的分裂应该是如何danymic的更多信息,以下代码将涵盖您的要求:
'Some UnitTest
Dim toSplit As String = "someexpression1 OR someexpression2 OR someexpression3 OR someexpression4 OR someexpression5"
Dim actual = GetLastExpressions(toSplit)
Dim expected = "OR someexpression4 OR someexpression5"
Assert.AreEqual(expected, actual)
toSplit = "requirement OR is OR weird"
actual = GetLastExpressions(toSplit)
expected = ""
Assert.AreEqual(expected, actual)
'...
Private Function GetLastExpressions(expression As String, Optional splitBy As String = "OR", Optional numberToSkip As Integer = 3)
Dim expr As String = ""
Dim lExpressions As IEnumerable(Of String) = Nothing
Dim aSplit = expression.Split({expression}, StringSplitOptions.None)
If aSplit.Length > numberToSkip Then
lExpressions = aSplit.Skip(numberToSkip)
End If
If lExpressions IsNot Nothing Then
expr = splitBy & String.Join(splitBy, lExpressions)
End If
Return expr
End Function
答案 1 :(得分:-1)
向我的一位朋友发言,他建议这样做,并且工作正常;
Dim sline As String = MyString
Dim iorcount As Integer = 0
Dim ipos As Integer = 1
Do While iorcount < 17
ipos = InStr(ipos, sline, "OR")
ipos = ipos + 2
iorcount = iorcount + 1
Loop
MsgBox(Mid(sline, ipos))