una separar recortar parte palabra letras extraer ejemplos cadena c# .net string

separar - ¿Cómo divido una cadena por un delimitador de múltiples caracteres en C#?



split string c# string delimiter (10)

¿Qué pasa si quiero dividir una cadena usando un delimitador que es una palabra?

Por ejemplo, This is a sentence .

Quiero dividir en is y obtener This y a sentence .

En Java , puedo enviar una cadena como delimitador, pero ¿cómo logro esto en C# ?


...En breve:

string[] arr = "This is a sentence".Split(new string[] { "is" }, StringSplitOptions.None);


Aquí hay una función de extensión para hacer la división con un separador de cadena:

public static string[] Split(this string value, string seperator) { return value.Split(new string[] { seperator }, StringSplitOptions.None); }

Ejemplo de uso:

string mystring = "one[split on me]two[split on me]three[split on me]four"; var splitStrings = mystring.Split("[split on me]");


Basado en las respuestas existentes en esta publicación, esto simplifica la implementación :)

namespace System { public static class BaseTypesExtensions { /// <summary> /// Just a simple wrapper to simplify the process of splitting a string using another string as a separator /// </summary> /// <param name="s"></param> /// <param name="pattern"></param> /// <returns></returns> public static string[] Split(this string s, string separator) { return s.Split(new string[] { separator }, StringSplitOptions.None); } } }


O usa este código; (mismo: nueva cadena [])

.Split(new[] { "Test Test" }, StringSplitOptions.None)


Puede usar String.Replace () para reemplazar su cadena dividida deseada con un carácter que no aparece en la cadena y luego usar String.Split en ese carácter para dividir la cadena resultante para el mismo efecto.


Puedes usar el método Regex.Split , algo como esto:

Regex regex = new Regex(@"/bis/b"); string[] substrings = regex.Split("This is a sentence"); foreach (string match in substrings) { Console.WriteLine("''{0}''", match); }

Edición : Esto satisface el ejemplo que dio. Tenga en cuenta que un String.Split ordinario también se dividirá en el " es " al final de la palabra "Este", por lo tanto, usé el método Regex e incluí los límites de las palabras alrededor del " es ". Tenga en cuenta, sin embargo, que si acaba de escribir este ejemplo por error, es probable que String.Split sea ​​suficiente.


http://msdn.microsoft.com/en-us/library/system.string.split.aspx

Ejemplo de la documentación:

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); }


string s = "This is a sentence."; string[] res = s.Split(new string[]{ " is " }, StringSplitOptions.None); for(int i=0; i<res.length; i++) Console.Write(res[i]);

EDITAR: El "es" se rellena en ambos lados con espacios en la matriz para preservar el hecho de que solo desea que la palabra "sea" eliminada de la oración y la palabra "esto" permanezca intacta.


string strData = "This is much easier" int intDelimiterIndx = strData.IndexOf("is"); int intDelimiterLength = "is".Length; str1 = strData.Substring(0, intDelimiterIndx); str2 = strData.Substring(intDelimiterIndx + intDelimiterLength, strData.Length - (intDelimiterIndx + intDelimiterLength));


var dict = File.ReadLines("test.txt") .Where(line => !string.IsNullOrWhitespace(line)) .Select(line => line.Split(new char[] { ''='' }, 2, 0)) .ToDictionary(parts => parts[0], parts => parts[1]); or enter code here line="[email protected][email protected]"; string[] tokens = line.Split(new char[] { ''='' }, 2, 0); ans: tokens[0]=to token[1][email protected][email protected]