【问题标题】:Can't find error in Matcher, unclosed character class在 Matcher 中找不到错误,未封闭的字符类
【发布时间】:2017-04-25 19:36:00
【问题描述】:

我正在尝试匹配字符串中的模式,但我得到了未封闭的字符类,这是我的匹配器:

Matcher d = Pattern.compile("\"[^\"\\]*(?:\\.[^\"\\]*)*\"|(?<=,|^)([^,]*)(?=,|$)")
                .matcher(titulos);

知道错误在哪里吗?

【问题讨论】:

  • \\] 是文字 ],因此您永远不会关闭任何 [s。
  • “知道错误在哪里吗?” index 43,字符串的结尾。

标签: java regex error-handling matcher


【解决方案1】:

要使用 [^"\],您必须使用 4 \\\\ 作为反斜杠 \ 而不是 2 \\,如下所示:

"\"[^\"\\\\]*(?:\\.[^\"\\\\]*)*\"|(?<=,|^)([^,]*)(?=,|$)"

【讨论】:

    猜你喜欢
    • 2014-03-16
    • 2018-04-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2013-03-20
    • 2015-09-15
    • 2011-12-28
    • 1970-01-01
    相关资源
    最近更新 更多