当前位置: 首页 > 知识库问答 >
问题:

如何在Clojure中定义多个正则表达式来分割字符串?

墨雨华
2023-03-14

我是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"]

如果输入是“Hello World!\n Have a nice Day”,那么输出应该是[“Hello”“World!”“Have”“a”“nice”“Day”]

谁能建议我,我该怎么做?谢了。

共有1个答案

丌官积厚
2023-03-14

我建议您使用#“\s+”作为拆分regex,因为\s符号类包括所有空白字符(对于java regex来说,它们是[\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"]
 类似资料:
  • 问题内容: 我有一个字符串,我想使用regex表达式拆分此字符串,以便该函数返回数组: 我将如何使用Swift进行此操作? 编辑 我的问题不同于链接的问题。我意识到您可以使用迅速拆分字符串。问题是该问题没有解决如何制作正则表达式的问题。我尝试使用,但是没有用。 如何使该部分成为正则表达式? 问题答案: Swift到目前为止还没有本地正则表达式。但提供。 运行此将输出

  • 问题内容: 我有表格形式的命令输出。我正在从结果文件中解析此输出,并将其存储在字符串中。一行中的每个元素都由一个或多个空格字符分隔,因此我正在使用正则表达式来匹配1个或多个空格并将其拆分。但是,每个元素之间都会插入一个空格: 有一个更好的方法吗? 每次拆分后都会添加到列表中。 问题答案: 通过使用,您将捕获该组,如果仅删除它们,则不会出现此问题。 但是,不需要正则表达式,没有指定任何定界符将为您将

  • 问题内容: 我真的是Go的新手,到目前为止一直都很喜欢。我正在尝试找到一种使用正则表达式而不是字符串来拆分字符串的好方法。谢谢 http://nsf.github.com/go/strings.html?f:Split! 问题答案: 如果您只想分割某些字符,则可以使用,否则我将使用。

  • 我肯定这已经张贴之前,但我有麻烦找到一个答案。

  • 问题内容: 有没有办法使用正则表达式来匹配重复的字符集?例如: 我知道那是错的。但是有什么可以匹配这种效果的吗? 更新: 您可以使用嵌套捕获组吗?像什么? 问题答案: 将要重复的正则表达式放在括号中。例如,如果您要重复5次: 或者,如果您想要任意数量的重复(0或更多): 或一个或多个重复: 编辑 以回应更新 正则表达式中的括号有两个作用:它们将正则表达式中的一系列项目组合在一起,以便您可以将运算符

  • 问题内容: 我想使用来自用户的输入作为正则表达式模式来搜索某些文本。它可以工作,但是我该如何处理用户在正则表达式中放置有意义的字符的情况?例如,用户要搜索:正则表达式引擎会将(s)分组。我希望它像对待字符串一样对待它。我可以replace在用户输入上运行并将和 替换,但是问题是我将需要对每个可能的正则表达式符号进行替换。你知道更好的方法吗? 问题答案: 使用此功能: 4.2.3 re模块内容 转义