私はjavaクラスとの相互運用が可能なclojureのプロジェクトで作業していますので、私の質問に対する答えはjavaまたはclojureのいずれかになります。Java/clojure:複数の文字区切り文字で区切り文字を保持
基本的には、指定した区切り文字(1文字以上)に基づいて文字列を分割することができる必要がありますが、同時に区切り文字も保持する必要があります。
例えば:
splitting "test:test:test" on ":" => [ "test" ":" "test" ":" "test" ]
splitting "::test::test::" on "::" => [ "::" "test" "::" "test" "::" ]
クローゼット私はClojureののclojure.string/split
を使用して使用することを来ているが、それは実際に区切り文字を返しません。 2番目に近いのは、区切り文字を返すが複数文字の区切り文字を受け入れないStringTokenizerを使用していたことです。
他の解決方法を知っている人はいますか?文字列を文字列に分割し、それを奇妙なものにするだけですか?助けのための
=> (defn split-with-delim [s d]
(clojure.string/split s (re-pattern (str "(?=" d ")|(?<=" d ")"))))
#'user/split-with-delim
=> (split-with-delim "test:test:test" ":")
["test" ":" "test" ":" "test"]
=> (split-with-delim "::test::test::" "::")
["" "::" "test" "::" "test" "::"]
ありがとう:ここ –