quitar palabras net intermedios ignorar espacios espacio entre eliminar blanco c#

c# - net - Insertar espacios entre las palabras en un token camel-cased



quitar espacios en blanco vb net (6)

Aquí hay un método de extensión que he usado ampliamente para este tipo de cosas

public static string SplitCamelCase( this string str ) { return Regex.Replace( Regex.Replace( str, @"(/P{Ll})(/P{Ll}/p{Ll})", "$1 $2" ), @"(/p{Ll})(/P{Ll})", "$1 $2" ); }

También maneja cadenas como "IBMMakeStuffAndSellIt", convirtiéndola en "IBM Make Stuff And Sell It" (IIRC)

Esta pregunta ya tiene una respuesta aquí:

¿Hay una buena función para convertir algo así como

Nombre de pila

a esto:

¿Nombre de pila?


Manera más simple:

var res = Regex.Replace("FirstName", "([A-Z])", " $1").Trim();


Puedes usar una expresión regular:

Match ([^^])([A-Z]) Replace $1 $2

En codigo:

String output = System.Text.RegularExpressions.Regex.Replace( input, "([^^])([A-Z])", "$1 $2" );


Regex:

http://weblogs.asp.net/jgalloway/archive/2005/09/27/426087.aspx http://.com/questions/773303/splitting-camelcase

(probablemente el mejor - vea la segunda respuesta) http://bytes.com/topic/c-sharp/answers/277768-regex-convert-camelcase-into-title-case

Para convertir de UpperCamelCase a Title Case, use esta línea: Regex.Replace ("UpperCamelCase", @ "(/ B [AZ])", @ "$ 1");

Para convertir tanto de lowerCamelCase como de UpperCamelCase en Title Case, use MatchEvaluator: public string toTitleCase (Match m) {char c = m.Captures [0] .Value [0]; return ((c> = ''a'') && (c <= ''z''))? Char.ToUpper (c) .ToString (): "" + c; } y cambie un poco su expresión regular con esta línea: Regex.Replace ("UpperCamelCase o lowerCamelCase", @ "(/ b [az] | / B [AZ])", nuevo MatchEvaluator (toTitleCase));



/// <summary> /// Parse the input string by placing a space between character case changes in the string /// </summary> /// <param name="strInput">The string to parse</param> /// <returns>The altered string</returns> public static string ParseByCase(string strInput) { // The altered string (with spaces between the case changes) string strOutput = ""; // The index of the current character in the input string int intCurrentCharPos = 0; // The index of the last character in the input string int intLastCharPos = strInput.Length - 1; // for every character in the input string for (intCurrentCharPos = 0; intCurrentCharPos <= intLastCharPos; intCurrentCharPos++) { // Get the current character from the input string char chrCurrentInputChar = strInput[intCurrentCharPos]; // At first, set previous character to the current character in the input string char chrPreviousInputChar = chrCurrentInputChar; // If this is not the first character in the input string if (intCurrentCharPos > 0) { // Get the previous character from the input string chrPreviousInputChar = strInput[intCurrentCharPos - 1]; } // end if // Put a space before each upper case character if the previous character is lower case if (char.IsUpper(chrCurrentInputChar) == true && char.IsLower(chrPreviousInputChar) == true) { // Add a space to the output string strOutput += " "; } // end if // Add the character from the input string to the output string strOutput += chrCurrentInputChar; } // next // Return the altered string return strOutput; } // end method