/ / Reemplazar si un personaje aparece un número impar de veces al comienzo de una Cadena || Regex - java, regex

Reemplazar si un personaje viene con un número impar de veces en el comienzo de una Cadena || Regex - java, regex

Estoy tratando de crear una expresión regular que busque el número de barras inclinadas (/) al principio de una Cadena y si hay un número impar de barras de retroceso serán reemplazadas por Cadena vacía.

    String regex = "^/(//)*";
System.err.println("Case1: " +   "/".replaceAll(regex,""));
System.err.println("Case2: " +   "//".replaceAll(regex,""));
System.err.println("Case3: " +   "///".replaceAll(regex,""));
System.err.println("Case4: " +   "/b".replaceAll(regex,""));
System.err.println("Case5: " +   "//b".replaceAll(regex,""));
System.err.println("Case6: " +   "///b".replaceAll(regex,""));

Mi expresión regular está trabajando con el caso 1,3,4 y 6, pero en el caso 2 y 5 está imprimiendo / y / b como salida respectivamente.

Por favor ayuda.

Respuestas

3 para la respuesta № 1

Añadir un lookahead negativo (?!/) en su expresión regular para comprobar que no hay más / después de emparejar las probabilidades. En su caso su número impar picking / desde el // o ///, por lo tanto no funcionó.

String regex = "^/(//)*(?!/)";
^^^^^ here

1 para la respuesta № 2

prueba esto

String regex = "^/(//)*(?=[^/]|$)";