正则表达式匹配Java

时间:2017-09-12 20:10:59

标签: java regex expression

我正在处理正则表达式匹配问题。问题是,我想匹配一个超过7的字符串(任何字符,包括数字,字母,特殊字符)。我正在使用下面的表达式(我删除了头部和结尾符号)但是没有按照我的想法工作。有什么想法吗?

"((\\w|W){7,})"

Java代码:

        final String VALID_REGEX =
            "^((\\w{2,6})" // 2 to 6 characters
                    + "(?:[\\r\\n]{1,3})" // 1 or 3 carriage returns
                    + "([\\w\\W]{7,})" // equal to or more than 7 characters or spaces
                    + "(?:[\\r\\n]{1,3})" // 1 or 3 carriage returns
                    + "(?:[\\w\\W])*"; // Any text
    Pattern regExPattern = Pattern.compile(VALID_REGEX, Pattern.DOTALL);
    String content = new String(Files.readAllBytes(Paths.get("/home/hqu/Downloads/test.txt")));
    Matcher noMatcher = regExPattern.matcher(content);
    if(noMatcher.matches())
        System.out.println("match");
    else
        System.out.println("not match");

输入:

不匹配enter image description here

匹配enter image description here

1 个答案:

答案 0 :(得分:0)

不太确定,但请更换

“([\ W \ W] {7,})”

“([\ w |] {7,})”

适用于我的测试用例。