3

のように動作するように re-seq に渡すことができる正規表現はあり.splitますか?

user=> (seq (.split "a,b,c,,e" ","))
("a" "b" "c" "" "e")
user=> (re-seq #"[^,]" "a,b,c,,e")
("a" "b" "c" "e")
user=>

ご覧のとおり、正規表現[^,]は区切りファイルの空の列を検出できないため、あまり受け入れられません。私は立ち往生していますか、それとも働かせることが.splitできre-seqますか?

4

1 に答える 1

6

試す

(re-seq #"[^,]+|(?<=,)(?=,)" "a,b,c,,e")

Clojure 正規表現が後読みアサーションをサポートすることを願っています。

説明:

[^,]+       # Either match one or more non-comma characters
|           # or
(?<=,)(?=,) # match the empty string between two commas
于 2012-06-20T17:31:07.927 に答える