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
Ответы
Ответ 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 может выполнять разделение по регулярному выражению, поэтому, если вы создаете простое регулярное выражение, которое является просто строкой, которую вы хотите разбить, это должно работать.