例如,我可以这样做:
split = temp_string.Split("<beginning of record>")
你们推荐的那些:
split = Regex.Split(temp_string, "< beginning of record >")
它不起作用。它只返回第一个字符“&lt;”
以及那些推荐的人:
Dim myDelims As String() = New String(){"< beginning of record >"}
split = temp_string.Split(myDelims, StringSplitOptions.None)
这也不起作用。它也只返回第一个字符
答案 0 :(得分:35)
试试这个:
string[] myDelims = new string[] { "<beginning of record>" };
split = temp_string.Split(myDelims,StringSplitOptions.None);
通过代码转换器运行此结果:
Dim myDelims As String() = New String() { "<beginning of record>" }
split = temp_string.Split(myDelims, StringSplitOptions.None)
您可能还需要逃离V形臂,如下所示:
"\< beginning of record \>"
答案 1 :(得分:16)
Dim delim as String() = New String(0) { "<beginning of record>" }
split = temp_string.Split(delim, StringSplitOptions.None)
答案 2 :(得分:6)
你可以看一下Regex.Split() - 方法。
这似乎有效
dim s as string = "you have a <funny> thing <funny> going on"
dim a() as string = Regex.Split(s,"<funny>")
for each b as string in a
Response.Write( b & "<br>")
next
答案 3 :(得分:6)
您可以自己编写一种扩展方法,以便更轻松(基于Matthew Jones的答案)
(猜我也应该展示一个例子......)
Dim results = "hay needle hay needle hay".Split("needle")
' results(0) = "hay "
' results(1) = " hay "
' results(2) = " hay"
... C#...
public static class Tools
{
public static string[] Split(this string input, params string[] delimiter)
{
return input.Split(delimiter, StringSplitOptions.None);
}
}
...... VB.Net ......
Module Tools
<Extension()> _
Public Function Split(ByVal input As String, _
ByVal ParamArray delimiter As String()) As String()
Return input.Split(delimiter, StringSplitOptions.None)
End Function
End Module
答案 4 :(得分:3)
这似乎有用
Dim myString As String = "aaajjbbbjjccc"
Dim mySplit() As Char = "jj".ToCharArray
Dim myResult() As String = myString.Split(mySplit, StringSplitOptions.RemoveEmptyEntries)
答案 5 :(得分:2)
如果你真正拆分的是将XML读入字符串,那么不要使用VB字符串来完成这项工作。使用XSLT。 VB / C#具有使用XSLT呈现XML的方法。它会更快更可靠。
答案 6 :(得分:1)
我不这么认为,它只需要角色。你可以做一些丑陋的黑客攻击,并首先用字符串中尚未存在的某个字符替换字符串的所有实例,然后在该字符上拆分。
编辑添加:我认为Regex.Split能够在正则表达式上进行拆分,所以如果你创建一个简单的正则表达式,它只是你想要拆分的字符串,那应该可行。