我有以下代码:
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
\
是什么导致了这个问题?
答案 0 :(得分:4)
你需要转义或引用你的模式,因为反斜杠是正则表达式的控制字符。
例如:
if ("Test I want to match".matches(Pattern.quote(clipStrg)))
如果您只是比较String
,请改用equals
:
if ("Test I want to match".equals(clipStrg))