从剪贴板匹配反斜杠(\)时出错

时间:2014-10-16 14:41:11

标签: java regex clipboard backslash

我有以下代码:

try {
    String clipStrg = (String) Toolkit.getDefaultToolkit()
        .getSystemClipboard()
        .getData(DataFlavor.stringFlavor);

    if ("Test I want to match".matches(clipStrg))
    {
        System.out.println(clipStrg);
    }

    } catch (UnsupportedFlavorException | IOException ex) {
        Logger.getLogger(Toolframe.class.getName()).log(Level.SEVERE, null, ex);
    }

当我在剪贴板中有反斜杠("\")时,我收到以下错误:

Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\

是什么导致了这个问题?

1 个答案:

答案 0 :(得分:4)

你需要转义或引用你的模式,因为反斜杠是正则表达式的控制字符。

例如:

if ("Test I want to match".matches(Pattern.quote(clipStrg)))

如果您只是比较String,请改用equals

if ("Test I want to match".equals(clipStrg))