Java 如果字符在字符串| | Regex开头出现奇数次,则替换
我正在尝试创建一个正则表达式,它将查找字符串开头的正斜杠(/)的数量,如果它们是奇数个反斜杠,它们将被空字符串替换Java 如果字符在字符串| | Regex开头出现奇数次,则替换,java,regex,Java,Regex,我正在尝试创建一个正则表达式,它将查找字符串开头的正斜杠(/)的数量,如果它们是奇数个反斜杠,它们将被空字符串替换 String regex = "^/(//)*"; System.err.println("Case1: " + "/".replaceAll(regex,"")); System.err.println("Case2: " + "//".replaceAll(regex,"")); System.err.println("Case3: "
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,""));
我的正则表达式正在处理案例1、3、4和6,但在案例2和5中,它分别打印/b和/b作为输出
请帮助。在正则表达式中添加一个负前瞻
(?!/)
,以检查匹配赔率后是否没有进一步的/
。在您的情况下,它从//
或//
中拾取奇数的/
,因此不起作用
String regex = "^/(//)*(?!/)";
^^^^^ here
试试这个
String regex = "^/(//)*(?=[^/]|$)";
那么你到底期望什么呢<代码>“/”=>”和
“/”=>“/”
和“//”=>”
?你比我快了几秒钟+1.