Разделить строку в VB.NET на ("||"), если строка имеет | что нужно идти тоже - PullRequest
0 голосов
/ 05 марта 2019

У меня есть строка, которую нужно очистить,

, как это делает программа, взяв фразы, которые нужно удалить, разделите их и замените каждую на "".

символ разделения фраз - ("||") LocationStopPhrases.Split(CChar("||")), и я пока не могу это изменить.

проблема в том, что у меня есть фраза | CO-Lakewood, которую нужно удалить, поэтому разделениезатормозите его на массив следующим образом: ["", "CO-Lakewood"].

есть ли способ (например, escape в регулярном выражении), так что одиночная труба будет в массиве, поэтому она будет выглядеть так: ["|", "CO-Lakewood"]?

просто чтобы быть понятным, я не могу изменить код, я могу только задать фразу.

Ответы [ 3 ]

3 голосов
/ 05 марта 2019

.Split(CChar("||")) не выполняет то, что вы намерены, потому что CChar("||") - это |.

. Вам нужна перегрузка String.Split , которая позволяет разделить настрока, а не символ:

Module Module1

    Sub Main()
        Dim LocationStopPhrases = "hello||world|||  CO-Lakewood"
        Dim p = LocationStopPhrases.Split({"||"}, StringSplitOptions.RemoveEmptyEntries)

        Console.WriteLine(String.Join(vbCrLf, p))
        Console.ReadLine()

    End Sub

End Module

выводит:

hello
world
|  CO-Lakewood

Затем вы можете иметь дело с одиночным |по мере необходимости;например,

"|  CO-Lakewood".Split({" "c}, StringSplitOptions.RemoveEmptyEntries)

даст ["|", "CO-Lakewood"].

Конечно, если бы world| была предполагаемой частью, тогда было бы необходимо другое решение.

1 голос
/ 05 марта 2019

Вы можете разделить на один | и удалить пустые записи

Dim parts = input.Split(New Char() { "|"c }, StringSplitOptions.RemoveEmptyEntries)

В результате вход будет разделен на ||, а также на |.

0 голосов
/ 06 марта 2019

Существует перегрузка String.Split, которая принимает строковый массив и StringSplitOptions.

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Dim s = "The quick || brown fox | jumped over || the lazy dogs."
    Dim SplitBy = {"||", "fox"}
    Dim SplitString = s.Split(SplitBy, StringSplitOptions.RemoveEmptyEntries)
    For Each s In SplitString
        Debug.Print(s)
    Next
    'Output
    'The quick 
    ' brown
    ' | jumped over 
    ' the Lazy dogs.
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...