E se eu quiser dividir uma string usando um delimitador que é uma palavra?
Por exemplo This is a sentence
,.
Eu quero dividir is
e pegar This
e a sentence
.
Em Java
, posso enviar uma sequência como delimitador, mas como faço isso C#
?
http://msdn.microsoft.com/en-us/library/system.string.split.aspx
Exemplo dos documentos:
string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
// ...
result = source.Split(stringSeparators, StringSplitOptions.None);
foreach (string s in result)
{
Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}
Você pode usar o método Regex.Split , algo como isto:
Edit : Isso satisfaz o exemplo que você deu. Observe que um String.Split comum também será dividido no " is " no final da palavra "This", por isso usei o método Regex e incluí os limites da palavra em torno do " is ". Observe, no entanto, que se você acabou de escrever este exemplo com erro, provavelmente String.Split será suficiente.
fonte
Com base nas respostas existentes neste post, isso simplifica a implementação :)
fonte
EDIT: O "é" é preenchido em ambos os lados com espaços na matriz para preservar o fato de que você deseja apenas que a palavra "seja" removida da frase e a palavra "isto" permaneça intacta.
fonte
...Em resumo:
fonte
Você pode usar String.Replace () para substituir a string de divisão desejada por um caractere que não ocorra na string e, em seguida, usar String.Split nesse caractere para dividir a string resultante para o mesmo efeito.
fonte
Ou use este código; (mesmo: new String [])
fonte
Aqui está uma função de extensão para fazer a divisão com um separador de string:
Exemplo de uso:
fonte
fonte
fonte