我正在尝试创建一个正则表达式,它将在字符串的开头查找正斜杠(/)的数量,如果它们是奇数个反向字符,则它们将被空字符串替换
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作为输出。
请帮忙。
答案 0 :(得分:3)
在正则表达式中添加否定前瞻(?!/)
,以便在匹配赔率后检查没有其他/
。在您的情况下,它从/
或//
中选取奇数///
,因此无效。
String regex = "^/(//)*(?!/)";
^^^^^ here
答案 1 :(得分:1)
试试这个
String regex = "^/(//)*(?=[^/]|$)";