Estoy buscando tomar una cadena y dividirla en una matriz en los saltos de línea (\ n) Intenté usar split
pero eso quita el delimitador. Necesito que se guarde el \n
al final de cada línea si existe. ¿Ya existe algo como esto o tendré que codificarlo yo mismo?Algo similar a split()?
Respuesta
He intentado usar split pero eso quita el delimitador. Necesito que \ n se guarde al final de cada línea si existe.
Todavía puede usarlo y preservar el salto de línea si usa mirar hacia delante o hacia atrás en su expresión regular. Mira el mejor tutorial de expresiones regulares que conozco:
Regex Tutorial
Look-Around section of the Regex Tutorial.
Por ejemplo:
public class RegexSplitPageBrk {
public static void main(String[] args) {
String text = "Hello world\nGoodbye cruel world!\nYeah this works!";
String regex = "(?<=\\n)"; // with look-behind!
String[] tokens = text.split(regex);
for (String token : tokens) {
System.out.print(token);
}
}
}
La visión hacia adelante o buscar-detrás (también llamado "look-around") es no destructivo para los personajes que coincidan.
En lugar de simplemente decir "lo estás haciendo mal", ¿por qué no proporcionar la ... solución? – debracey
@debracey: ese fue el plan desde el principio. A menudo publico una respuesta inicial y luego agrego más a ella, para no trabajar en las preguntas que se eliminan. Odio cuando eso ocurre. Tampoco me gusta publicar el código sin probarlo primero. –
Sí, lo vi editar la publicación :-) – debracey
alternativa a la solución @Hovercraft con Lookahead afirmación:
String[] result = s.split("(?=\n)");
Más detalles sobre Lookahead en http://www.regular-expressions.info/lookaround.html
Sí, una buena solución también. 1+ –
Otra solución es simplemente agregando los delimitadores después de dividir
String delimiter = "\n"
String[] split = input.split(delimiter);
for(int i = 0; i < split.length; i++){
split[i] += delimiter;
}
- 1. Algo similar a java.util en Javascript?
- 2. ¿Hay algo similar a WebClient.DownloadString en Java?
- 3. Algo similar a jMonkey Engine para C#
- 4. ¿JUnit 3 tiene algo similar a @BeforeClass?
- 5. ¿Existe algo similar a gsub en javascript?
- 6. Algo similar a PHP SimpleXML en Python?
- 7. algo similar a python-DJANGO en PHP?
- 8. UISwitch, algo similar para Mac?
- 9. herencia enum, o algo similar
- 10. PHP Algo similar a MySQL Like, for if statement?
- 11. ¿Hay algo similar a GUnload() en google maps v3?
- 12. ¿hay algo similar a asp.net mvc para winforms o wpf?
- 13. ¿Hay algo similar a ServiceLoader en Java 1.5?
- 14. ¿Hay algo similar a LINQ en Objective-C?
- 15. Algo similar a C# .NET Lista genérica en java
- 16. ¿Hay algo similar a Nhibernate "Mapeo por código" para Hibernate
- 17. ¿Java tiene algo similar a las propiedades de C#?
- 18. ¿Hay algo similar a mini-mvc-profiler para Java?
- 19. ¿Hay algo similar a 'rutas de rake' en django?
- 20. ¿El rubí tiene algo similar a buildout o virtualenv?
- 21. algo similar a SDWebImage en iOS para Android?
- 22. Vim para Word (o algo similar)
- 23. ¿Hay un gancho de pago de Subversion o algo similar?
- 24. ¿Hay una macro LARGEST_INTEGER o algo similar? (C)
- 25. ¿Algo en Guava similar al efecto funcional de Java?
- 26. ArrayList de matrices vs. array de ArrayLists vs. algo similar
- 27. ¿Tiene jqGrid un evento afterSort o algo similar?
- 28. ¿Hay algo similar para emacs como NERDtree de VIMS
- 29. Does Go tiene expresiones lambda o algo similar?
- 30. ¿Algún programa ha usado .DS_Store (o similar) para algo útil?
gracias chicos! arregló mi problema Lo intenté un millón de veces para entender regex, todavía no lo he descifrado todavía. – bwoogie
Deberías echarle un vistazo al tutorial al que me he vinculado, ya que es el mejor tutorial de expresiones regulares que he visto hasta ahora. –