2013-08-31 44 views
2

這是一個比Clojure更多的正則表達式問題,但我正在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" "!") 

我在哪裏得到的所有的話,但言語之間其餘的都包括在內了。 我不在乎期間和空間,如果他們是分開的"." " "或一起「。」

這是簡單的與正則表達式嗎?

回答

3

嘗試使用以下正則表達式:

 
\w+|\W+ 

> (re-seq #"\w+|\W+" "This is a test. Only a test!") 
("This" " " "is" " " "a" " " "test" ". " "Only" " " "a" " " "test" "!") 
0

你也許可以使用\b相匹配單詞邊界和使用string/split。唯一的問題是,它也會匹配字符串的開始:

(rest (clojure.string/split "This is a test. Only a test!" #"\b")) 

這也不會懶惰。

相關問題