我编写了一个正则表达式,它将用偶数个斜杠替换奇数个斜杠,同时保留偶数个斜杠。但由于某种原因,我收到了一个错误:
int matchFlags = StringUtil.MATCH_SINGLELINE;
int replaceFlags = StringUtil.REPLACE_ALL + StringUtil.REPLACE_BACKREFERENCES;
String pattern = "(?<!/)/(//)*(?!/)"; //replace odd # of slashes only.
String replace = "$0$0";
RE re = new RE(pattern, matchFlags);
result= re.subst(result, replace, replaceFlags);
这是例外:
Exception in thread "main" org.apache.regexp.RESyntaxException: Syntax error: Missing operand to closure
答案 0 :(得分:2)
您似乎无法使用org.apache.regexp
使用负面预测。也许你应该考虑使用其他的lib ...
答案 1 :(得分:1)
这很好用:
public class Test {
public static void main(String[] args) {
System.out.println(args[0].matches("(?<!/)/(//)*(?!/)"));
}
}
也许你的RE需要不同的东西