在Julia,R' grepl

时间:2017-04-13 18:38:16

标签: julia grepl

我不想重新发明轮子。只需查找搜索字符串或字符串向量的函数,并为找到匹配项的每个元素返回true。这是我到目前为止所尝试的。

grepl(x::String, y)         = length(search(x, y))   > 0
grepl(x::Vector{String}, y) = length.(search(x, y)) .> 0
grepl(x::Vector{AbstractString}, y) = length.(search(x, y)) .> 0

使用示例:

v = string.('a':'z')
x = rand(v, 100) .* rand(v, 100) .* rand(v, 100)
grepl(convert(Vector{String}, x), "z")

好吧,如果我能让我的类型正常工作,这将是一个有效的例子。基本上我可以使用return来仅选择其中包含"z"的元素。

1 个答案:

答案 0 :(得分:9)

只需使用contains即可。在0.6上,您可以直接使用点播:

julia> contains.(["foo","bar","baz"],"ba")
3-element BitArray{1}:
 false
  true
  true

在0.5上,你可以简单地将第二个参数包装在一个数组中:contains.(["foo","bar","baz"],["ba"])