我的正则表达式有什么问题吗?

时间:2012-02-22 09:40:08

标签: java regex

我编写了一个正则表达式,它将用偶数个斜杠替换奇数个斜杠,同时保留偶数个斜杠。但由于某种原因,我收到了一个错误:

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

2 个答案:

答案 0 :(得分:2)

您似乎无法使用org.apache.regexp使用负面预测。也许你应该考虑使用其他的lib ...

答案 1 :(得分:1)

这很好用:

public class Test {
    public static void main(String[] args) {
        System.out.println(args[0].matches("(?<!/)/(//)*(?!/)"));
    }
}

也许你的RE需要不同的东西