我在这里看到了几个线程,它们显示了根据子字符串数组检查字符串并在匹配时返回 bool 值的最有效方法。
str = "foobazbar"
arr = ["baz", "clowns"]
result = arr.any? { |substring| str.include?(substring) } # solution
result => true
但是,尽管该解决方案既优雅又高效,是否有任何方法可以返回匹配项本身?使用上面的示例,我还想知道匹配项是 baz
。实现此目标的最佳方法是什么?
最佳答案
str = "foobazbar"
arr = ["baz", "clowns", "bar"]
r = Regexp.union(arr) #=> /baz|clowns|bar/
str[r] #=> "baz"
str.scan(r) #=> ["baz", "bar"]
参见 Regexp::union , String#[]和 String#scan .
关于ruby - 检查字符串是否包含数组中的子字符串并获得匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148738/