vb.net:你能用字符串拆分字符串吗?

时间:2009-10-28 18:29:56

标签: .net vb.net string

例如,我可以这样做:

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)

这也不起作用。它也只返回第一个字符

7 个答案:

答案 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)

在VB.NET中

@Matthew Jones回答

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能够在正则表达式上进行拆分,所以如果你创建一个简单的正则表达式,它只是你想要拆分的字符串,那应该可行。