/ / Nahradenie, ak je znak párkrát počatý na začiatku reťazca || Regex - java, regex

Nahradenie znaku, ktorý sa opakuje niekoľkokrát na začiatku reťazca || Regex - java, regex

Snažím sa vytvoriť regex, ktorý bude hľadať počet lomítok dopredu (/) na začiatku reťazca a ak sú ich nepárne počety spätných lístkov, budú nahradené prázdnym reťazcom

    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,""));

Môj regex pracuje s prípadmi 1,3,4 a 6, ale v prípadoch 2 a 5 je to tlač / a / b ako výstup.

Prosím pomôžte.

odpovede:

3 pre odpoveď č. 1

Pridajte záporný vzhľad (?!/) vo vašom regexe, aby ste skontrolovali, či už neexistuje / po vyrovnaní kurzov. Vo vašom prípade je jeho početné nepárne číslo / od // alebo ///, preto nepracoval.

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

1 pre odpoveď č. 2

skúste to

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