【发布时间】:2018-07-18 00:47:52
【问题描述】:
在许多其他编程语言中,有一个函数将正则表达式作为参数并返回一个字符串值数组。 Javascript 和 Ruby 也是如此。然而,水晶中的.match 确实 1) 似乎不接受全局标志,并且 2) 它不返回数组,而是返回类型为 Regex::MatchData 的结构。 (https://crystal-lang.org/api/0.25.1/Regex/MatchData.html)
以下代码为例:
str = "Happy days"
re = /[a-z]+/i
matches = str.match(re)
puts matches
返回Regex::MatchData("Happy")
我不确定如何将此结果转换为字符串,或者为什么这不是灵感语言 (Ruby) 中的默认值。我理解这个问题可能是由于我没有处理结构和编译语言的经验,但我希望能得到一个答案,希望它也可以帮助其他有 JS/Ruby 背景的人。
【问题讨论】:
-
您似乎想要
matches.string,但使用scan,您将获得所有匹配项。
标签: regex matching crystal-lang