用于过滤Java中无效Windows字符的正则表达式

时间:2018-11-20 03:14:58

标签: java regex

我正在寻找一个正则表达式,它将允许我检查字符串是否具有无效的(Windows)字符。 这是我的示例代码:-

public class Test {
    public static void main(String[] args) {
     String folderName = ">aa?|<";

     Pattern p = Pattern.compile(".[\\\\/:\"*<>|].*$");
     Matcher m = p.matcher(folderName);

     if (m.matches()) {
        System.out.println("Match");
     } else {
        System.out.println("Un-match");
        }
    }
}

如果特殊字符位于字母之间(例如,例如“ a> a”),则该模式可以正常工作

任何人都可以建议适当的表达方式。 我搜索了很多链接,但找不到解决方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是因为您的初始点正好匹配一个字符。将其更改为.*以匹配零个或多个字符。

因此将.[\\\\/:\"*<>|].*$更改为.*[\\\\/:\"*<>|].*$