我在这一行上收到错误:
Pattern pattern = Pattern.compile(word + "\\(.*\\)");
它说:
Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unclosed group near index 14
我知道这个错误是当你离开没有转义的特殊字符,但我没有看到任何...
完整代码:
StyleConstants.setItalic(set, true);
for (String word : code.split("\\s")) {
Pattern pattern = Pattern.compile(word + "\\(.*\\)");
Matcher matcher = pattern.matcher(word);
while (matcher.find()) {
doc.setCharacterAttributes(matcher.start(), word.length(), set, true);
}
}
代码是一个字符串。它会爆炸代码并检查每个单词。如果单词匹配,请将其设为
答案 0 :(得分:0)
我尝试了以下内容:
Pattern pattern = Pattern.compile("abcd" + "\\(.*\\)");
log.debug("RegEx: " + pattern);
这很好用:
RegEx: abcd\(.*\)
我只能假设你在word
中有一些非转义字符。
如果您在编译时不知道word
的值,那么在调用compile()
方法之前构建模式并记录它:
String regex = word + "\\(.*\\)";
System.out.println("Regex: \"" + regex + "\"");
Pattern pattern = Pattern.compile(regex);