c# - ejemplos - ¿Cómo puedo dividir una cadena con un delimitador de cadena?
split string c# string delimiter (7)
Esta pregunta ya tiene una respuesta aquí:
Tengo esta cadena:
My name is Marco and I''m from Italy
Me gustaría dividirlo, con delimitador is Marco and
, por lo tanto, debería obtener una matriz con
-
My name
en [0] y -
I''m from Italy
en [1].
¿Cómo puedo hacerlo con C #?
Probado con
.Split("is Marco and")
Pero solo quiere una sola charla.
Estás dividiendo una cadena en una cadena secundaria bastante compleja. Usaría expresiones regulares en lugar de String.Split. El último es más para tokenizing tu texto.
Por ejemplo:
var rx = new System.Text.RegularExpressions.Regex("is Marco and");
var array = rx.Split("My name is Marco and I''m from Italy");
Hay una versión de string.Split
que toma una matriz de cadenas y un parámetro StringSplitOptions
:
Lea esto: http://www.dotnetperls.com/split y la solución puede ser algo como:
var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);
Podría usar el método IndexOf
para obtener una ubicación de la cadena y dividirla utilizando esa posición y la longitud de la cadena de búsqueda.
También puede utilizar la expresión regular. Una simple búsqueda de google resultó con esto
using System;
using System.Text.RegularExpressions;
class Program {
static void Main() {
string value = "cat/r/ndog/r/nanimal/r/nperson";
// Split the string on line breaks.
// ... The return value from Split is a string[] array.
string[] lines = Regex.Split(value, "/r/n");
foreach (string line in lines) {
Console.WriteLine(line);
}
}
}
Pruebe esta función en su lugar.
string source = "My name is Marco and I''m from Italy";
string[] stringSeparators = new string[] {"is Marco and"};
var result = source.Split(stringSeparators, StringSplitOptions.None);
.Split(new string[] { "is Marco and" }, StringSplitOptions.None)
Considere los espacios que rodean "is Marco and"
. ¿Desea incluir los espacios en su resultado o desea eliminarlos? Es muy posible que quieras usar " is Marco and "
como separador ...
string[] tokens = str.Split(new[] { "is Marco and" }, StringSplitOptions.None);
Si tiene un delimitador de un solo carácter (como por ejemplo ,
), puede reducirlo a (tenga en cuenta las comillas simples):
string[] tokens = str.Split('','');