R 在 Julia 中的 grepl

R's grepl in Julia

我不是要重新发明轮子。只是寻找一个函数来搜索字符串或字符串向量,并且 returns 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 到 select 只有其中有 "z" 的元素。

只需使用contains。在 0.6 上,你可以直接使用 dot-broadcasting:

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

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