Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果字符在字符串| | Regex开头出现奇数次,则替换_Java_Regex - Fatal编程技术网

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.