m
(re-seq #"cat cat" "cat cat cat")
находило ("cat cat" "cat cat") - одна подстрока с первого слова, другая со второго?
Size: a a a
m
(re-seq #"cat cat" "cat cat cat")
OR
(reduce
(fn [acc i]
(when-let [pos (clojure.string/index-of "cat cat cat" "cat cat" i)]
(conj acc pos)))
#{}
(range (- (count "cat cat cat") (count "cat cat"))))
T
(let [matcher (re-matcher #"cat cat" "cat cat cat")]
(loop [acc (transient [])
found (.find matcher)]
(if found
(let [res (.group matcher)
pos (.start matcher)]
(recur (conj! acc res)
(.find matcher (inc pos))))
(persistent! acc))))
(let [input "cat cat cat ! bar cat cat ! cat ! ! cat cat cat cat cat cat ! cat"
search "cat cat"
iter (take-while (comp (partial <= (count search)) count) (iterate rest input))]
(->> iter
(map (partial take (count search)))
(filter (partial = (seq search)))
(map str/join)))
T
(reduce
(fn [acc i]
(when-let [pos (clojure.string/index-of "cat cat cat" "cat cat" i)]
(conj acc pos)))
#{}
(range (- (count "cat cat cat") (count "cat cat"))))
IL
T
T
m
ST
ST
T
T
m
m
T
(cat(?= cat))
IL
T
m