2

これは 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" "!")

すべての単語を取得する場所ですが、単語間の他のすべても含まれます。ピリオドやスペースは、別々でも一緒でも構いません"." " "」。

これは正規表現で簡単に行うことができますか?

4

2 に答える 2

3

次の正規表現を使用してみてください。

\w+|\W+

> (re-seq #"\w+|\W+" "This is a test. Only a test!")
("This" " " "is" " " "a" " " "test" ". " "Only" " " "a" " " "test" "!")
于 2013-08-31T19:01:34.857 に答える
0

おそらく\b、単語の境界に一致する which を使用して、 を使用できますstring/split。唯一の問題は、文字列の先頭にも一致することです。

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

これも怠けません。

于 2013-08-31T19:07:11.590 に答える