Estoy un poco sorprendido de que no haya información sobre esto en la web, y sigo encontrando que el problema es un poco más complicado de lo que pensaba.¿Cuál es el mejor algoritmo para el delimitador arbitrario/procesamiento de caracteres de escape?
Aquí son las reglas:
- Usted está comenzando con delimitada/escapó de datos a dividirse en una matriz.
- El delimitador es un carácter arbitrario
- El carácter de escape es arbitraria carácter
- Tanto el delimitador y el carácter de escape podría ocurrir en los datos
- expresión regular está bien, pero una buena solución de rendimiento es mejor
- Editar: Vaciar elementos (incluyendo al principio o al terminar delimitadores) pueden ser ignorados
La firma de código (en C# sería, básicamente)
public static string[] smartSplit(
string delimitedData,
char delimiter,
char escape) {}
La parte más pegajosa del problema es el caso de escape de caracteres consecutivos, por supuesto, desde (llamar/el carácter de escape y, el delimitador): ////////, = ////,
¿Me falta algo de esto se maneja en la web o en otra pregunta de SO? Si no, pon tus grandes cerebros a trabajar ... Creo que este problema es algo que sería bueno tener en SO para el bien público. Estoy trabajando en eso, pero aún no tengo una buena solución.
Bastante bueno. Voy a portar esto a C# y lo publicaré. – danieltalsky
En realidad ... esto no debe haberse ejecutado. Esto ciertamente me llevó por el camino correcto, pero, por ejemplo, esos se rompen; las instrucciones deben continuarse; el ciclo o solo se ejecutará una vez, y solo se agregará un carácter a la matriz. – danieltalsky
En realidad, se ejecutó y funciona. Las interrupciones se aplican a la declaración de conmutación, no al ciclo for. – KenE