我正在尝试在除了普通字母之外的所有内容中拆分VB.NET中的字符串。
我尝试使用Char.IsLetter(...)编写一个函数,但由于某种原因它没有运行得太好(我把它放在崩溃的地方):
Private Function splitAtNonLetter(ByVal SplitString As String) As String()
Dim NonCharSplitArray As String() = {}
Dim ProcessValueTemp As String = String.Empty
For Each Letter As Char In SplitString
If Char.IsLetter(Letter) Then
ProcessValueTemp += Letter.ToString
Else
NonCharSplitArray(NonCharSplitArray.Length) = ProcessValueTemp
ProcessValueTemp = String.Empty
End If
Next
If ProcessValueTemp.Length > 0 Then
' Crashes in the next line: Index out of range exception...
NonCharSplitArray(NonCharSplitArray.Length) = ProcessValueTemp
End If
Return NonCharSplitArray
End Function
(我尝试使用正则表达式,但我从不之前使用它们,所以我没有真正设法让它工作)
有没有办法用RegExps做,或者你必须编写一个新函数,它会如何工作?
答案 0 :(得分:2)
Regex.Split
可能是使用负字符组的方法。
例如:
Dim bits = Regex.Split(text, "[^a-zA-z]")
或者也可以处理非ASCII字母:
Dim bits = Regex.Split(text, "[^\p{L}]")