(def matcher (doto (re-matcher #"(\d{2})\/(\d{2})\/(\d{4})" "12/02/1975 ")
(.find)))
(.groupCount matcher) ;; 3
(.group matcher 3) ;; "1975"
(nth matcher 3) ;; "1975"
(nth matcher 3 nil) ;; nil, but "1975" expected
似乎是在 Matcher
的 (nth <matcher-instance> <index> <not-found>)
实现中存在一个错误。
- 从 .groupCount 文档中: “约定中,组0代表整个模式。它不包括在本计数中。”
- 在
nth
实现 RT.java 中的检查确保 n < m.groupCount()
- 检查应该是
n <= m.groupCount()