Estoy tratando de crear una expresión regular para mi problema y aparentemente encontré un problema extraño.Java Regex lookahead toma demasiado tiempo
Vamos a describir lo que estoy tratando de hacer ..
Mi objetivo es eliminar las comas de ambos extremos de la cadena. E, g, string , ,, ,,, , , Hello, my lovely, world, ,, ,
debería convertirse en solo Hello, my lovely, world
.
he preparado siguiente expresión regular para lograr esto: (\w+,*? *?)+(?=(,?\W+$))
Funciona como un encanto en validadores de expresiones regulares, pero cuando estoy tratando de ejecutarlo en el dispositivo Android, matcher.find()
función cuelga durante ~ 1 minuto para encontrar una combinación apropiada ... supongo, el problema está en búsqueda positiva hacia delante que estoy usando, pero no pude encontrar ninguna solución mejor que simplemente recortar comas separado desde el principio y al final:
output = input.replaceAll("^(,?\\W?)+", ""); //replace commas at the beginning
output = output.replaceAll("(,?\\W?)+$", ""); //replace commas at the end
es hay algo que me falta en positivo mira hacia adelante i n Java regex? ¿Cómo puedo recuperar la sección de cadena entre las comas al principio y al final?
arghh ... ¿cómo podría perderse grupos que coinciden .. :(Muchas gracias llegué a refrescar mis conocimientos de expresiones regulares ... –