(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)
实现中的一个错误。
- 从 .groupCount 的文档中可以看到: "传统上,零组代表整个模式。它不包括在这个计数中。"
- 在
nth
实现中,在 RT.java 中进行的检查以确保 n < m.groupCount()
。
- 检查应该是
n <= m.groupCount()
。