Подтвердить что ты не робот

Vb.net: можете ли вы разбить строку на строку?

например, могу ли я сделать это:

split = temp_string.Split("<beginning of record>")

рекомендованные вами:

split = Regex.Split(temp_string, "< beginning of record >")

не работает. его просто возвращает первый char "<"

и тех из вас, кто рекомендовал:

Dim myDelims As String() = New String(){"< beginning of record >"}
split = temp_string.Split(myDelims, StringSplitOptions.None)

это тоже не работает. он также возвращает только первый char

4b9b3361

Ответ 1

Попробуйте следующее:

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)

Вам также может понадобиться избежать шевронов, например:

"\< beginning of record \>"

Ответ 2

@Matthew Jones ответ на VB.NET

Dim delim as String() = New String(0) { "<beginning of record>" } 
split = temp_string.Split(delim, StringSplitOptions.None)

Ответ 3

Вы можете написать себе метод расширения, чтобы упростить (на основе ответа Matthew Jones)

(предположим, я должен также показать пример...)

Dim results = "hay needle hay needle hay".Split("needle")
' results(0) = "hay "
' results(1) = " hay "
' results(2) = " hay"

... С#...

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

Вы можете посмотреть на 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

Ответ 5

это похоже на работу

    Dim myString As String = "aaajjbbbjjccc"
    Dim mySplit() As Char = "jj".ToCharArray
    Dim myResult() As String = myString.Split(mySplit, StringSplitOptions.RemoveEmptyEntries)

Ответ 6

Если то, что вы действительно расщепляете, является чтение XML в строку, тогда не используйте строки VB для выполнения этой работы. Используйте XSLT. У VB/С# есть методы для рендеринга XML с XSLT. Это будет намного быстрее и надежнее.

Ответ 7

Я так не думаю, что он принимает только символы. Вы можете сделать некоторую уродливую рабочую операцию и сначала заменить весь экземпляр строки на некоторый символ, который еще не существует в строке, а затем разделить на этот символ.

Отредактировано для добавления: Я думаю, что Regex.Split может выполнять разделение по регулярному выражению, поэтому, если вы создаете простое регулярное выражение, которое является просто строкой, которую вы хотите разбить, это должно работать.