tengo esta cadena: "NT-DOM-NV \ MTA" ¿Cómo puedo eliminar la primera parte: "NT-DOM-NV \" Para tener esto como resultado: "MTA"¿Cómo eliminar una parte definida de una cadena?
¿Cómo es posible con RegEx?
tengo esta cadena: "NT-DOM-NV \ MTA" ¿Cómo puedo eliminar la primera parte: "NT-DOM-NV \" Para tener esto como resultado: "MTA"¿Cómo eliminar una parte definida de una cadena?
¿Cómo es posible con RegEx?
puede utilizar
str = str.SubString (10); // to remove the first 10 characters.
str = str.Remove (0, 10); // to remove the first 10 characters
str = str.Replace ("NT-DOM-NV\\", ""); // to replace the specific text with blank
// to delete anything before \
int i = str.IndexOf('\\');
if (i >= 0) str = str.SubString(i+1);
Si siempre hay sólo una barra invertida, utilice esto:
string result = yourString.Split('\\').Skip(1).FirstOrDefault();
Si puede haber múltiples y sólo quiere tener la última parte, utilice la siguiente:
string result = yourString.SubString(yourString.LastIndexOf('\\') + 1);
+1 conciso y reutilizable – JohnK813
string s = @"NT-DOM-NV\MTA";
s = s.Substring(10,3);
-1: Nunca especificó, que cualquiera de las partes es de longitud fija. –
@Daniel: para ser justos, no ha especificado mucho ... Es posible que tampoco haya una "\" –
@paolo: tienes razón. Pero la suposición de que cualquiera de esas cadenas es de longitud fija tal vez habría sido correcta hace 30 años, pero no hoy en día. –
Trate
string string1 = @"NT-DOM-NV\MTA";
string string2 = @"NT-DOM-NV\";
string result = string1.Replace(string2, "");
string result = string1.Replace (string2, string.Empty); – katta
string.TrimStart(what_to_cut); // Will remove the what_to_cut from the string as long as the string starts with it.
"asdasdfghj".TrimStart("asd" );
dará lugar a "fghj"
.
"qwertyuiop".TrimStart("qwerty");
dará como resultado "uiop"
.
public static System.String CutStart(this System.String s, System.String what)
{
if (s.StartsWith(what))
return s.Substring(what.Length);
else
return s;
}
"asdasdfghj".CutStart("asd" );
ahora resultará en "asdfghj"
.
"qwertyuiop".CutStart("qwerty");
resultará en "uiop"
.
Problema con cable. Creo que muchos desarrolladores no lo saben. De todos modos, es una solución realmente buena y clara. Sustituyo TODO TrimStart en nuestra aplicación por su método CutStart. Gracias. – Jacob
Teniendo en cuenta que "\" siempre aparece en la cadena
var s = @"NT-DOM-NV\MTA";
var r = s.Substring(s.IndexOf(@"\") + 1);
// r now contains "MTA"
esto es justo lo que necesitaba! Gracias. – SamekaTV
¿Qué pasa si la cadena es '@" NT-DOM-NV \ MTA \ ABC \ file "' y después de dividir 'NT-DOM-NV', necesito la primera cadena después de la división. En este caso, debería ser 'MTA'. Si tengo que dividir 'NT-DOM-NV \ MTA', entonces debería devolver' ABC'. TIA – ASN
Usted puede utilizar este método de extensión:
public static String RemoveStart(this string s, string text)
{
return s.Substring(s.IndexOf(s) + text.Length, s.Length - text.Length);
}
En su caso, se puede usar de la siguiente manera:
string source = "NT-DOM-NV\MTA";
string result = source.RemoveStart("NT-DOM-NV\"); // result = "MTA"
Nota: Do no use TrimStart
método como yo t podría recortar uno o más caracteres más (see here).
Regex.Replace(@"NT-DOM-NV\MTA", @"(?:[^\\]+\\)?([^\\]+)", "$1")
pruébalo here.
Creo que el punto es que esto funcione en varias cadenas diferentes, por lo que tiene dos cadenas y desea eliminar una de la otra. –
@ Øyvind Knobloch-Bråthen, agregó más alternativas. –
¡No pedí borrar los primeros 10 caracteres! – SamekaTV