提取Clojure字符串直至冒号



我有一个字符串"早餐:鸡蛋&培根@ll day!"我想把所有东西都抽出来,直到结肠。我只想要回"早餐"。

提前感谢!

尝试使用split对冒号上的字符串进行分割,然后获得结果的第一个元素。

(clojure.string/split "Breakfast: eggs & bacon @ll day" #":")

split可能是最好的选择,而不是对捕获组使用正则表达式。你也可以在任何你喜欢的正则表达式上分割,所以如果你想在更复杂的东西上分割,这是一个选项。

Adam的答案更适合这样的任务。如果您想使用正则表达式,您可以使用re-find

> (re-find #"^[^:]+"  "Breakfast: eggs & bacon @ll day!")
Breakfast

正则表达式使用一个否定类来匹配冒号之前的所有内容。如果regex不包含带括号的捕获组,则在匹配重新查找时返回匹配的字符串部分。

如果您是Regex的新手,我推荐您使用txt2re.com。你可以输入你的字符串,然后点击你想要选择的部分。txt2re会为你生成一个正则表达式,支持多种语言,例如直接输出Perl/PHP来匹配字符串。

如果你选择了文本的另一部分,看看Regex是如何变化的,这很有趣。通过使用这个工具,您可以学习(简单的)Regex应用程序。

最新更新