如何在clojure中使用定义多个正则表达式来拆分字符串?

Ami*_*it 4 string clojure

我是clojure编程的新手.我正在学习通过定义正则表达式来分割字符串.我在这里学习https://clojuredocs.org/clojure.string/split

我想通过定义两个正则表达式来拆分字符串.例如:

=> (require '[clojure.string :as str])

=> (str/split "Hello world! Have a nice day" #" ")
;; ["Hello" "world!" "Have" "a" "nice" "day"]

=> (str/split "Hello world!\nHave a nice day" #"\n")
;; ["Hello world!" "Have a nice day"]
Run Code Online (Sandbox Code Playgroud)

这很酷.现在我想在每个空格换行符上拆分一个字符串.

如果输入是"Hello world!\n祝你好一天",输出应为["Hello""world!" "祝你今天愉快"]

任何人都可以建议我,我怎么能这样做?谢谢.

lee*_*ski 5

我建议你#"\s+"用作拆分正则表达式,因为\s符号类包含所有的空格字符(从java正则表达式开始[ \t\n\x0B\f\r].)(https://docs.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html) .

user> (clojure.string/split "Hello world! Have  a nice   day\naaa bbb" #"\s+")
["Hello" "world!" "Have" "a" "nice" "day" "aaa" "bbb"]
Run Code Online (Sandbox Code Playgroud)