这比Clojure更像是一个正则表达式问题,但我在Clojure中测试它。
(re-seq #"\w+" "This is a test. Only a test!")
产生
("This" "is" "a" "test" "Only" "a" "test")
我想要这个:
("This" " " "is" " " "a" "test" ". " "Only" " " "a" " " "test" "!")
我得到了所有单词,但单词之间的其他内容也包括在内。
如果它们是单独的"." " "
或一起“,我不关心时间和空间。”
这与正则表达式有关吗?
答案 0 :(得分:3)
尝试使用以下正则表达式:
\w+|\W+
> (re-seq #"\w+|\W+" "This is a test. Only a test!")
("This" " " "is" " " "a" " " "test" ". " "Only" " " "a" " " "test" "!")
答案 1 :(得分:0)
您可能可以使用匹配字边界的\b
并使用string/split
。唯一的问题是它也会匹配字符串的开头:
(rest (clojure.string/split "This is a test. Only a test!" #"\b"))
这也不会很懒惰。