Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 朱莉娅有一个字符串';包含';子串方法?_String_Julia - Fatal编程技术网

String 朱莉娅有一个字符串';包含';子串方法?

String 朱莉娅有一个字符串';包含';子串方法?,string,julia,String,Julia,我试图测试一个字符串是否包含特定的子字符串,如果包含,则测试它出现的索引。在Julia中如何实现这一点?Julia有两个有用的函数,可以让您实现传统的“contains”函数的功能 occursin()接受两个参数。第一个是要查找的子字符串,第二个是要搜索的目标或字符串 findfirst()采用相同的参数,但这次返回子字符串第一次出现的索引(如果找到) julia> a = "HelloWorld" "HelloWorld" julia> occursin("Hello", a)

我试图测试一个字符串是否包含特定的子字符串,如果包含,则测试它出现的索引。在Julia中如何实现这一点?

Julia有两个有用的函数,可以让您实现传统的“contains”函数的功能

occursin()
接受两个参数。第一个是要查找的子字符串,第二个是要搜索的目标或字符串

findfirst()
采用相同的参数,但这次返回子字符串第一次出现的索引(如果找到)

julia> a = "HelloWorld"
"HelloWorld"

julia> occursin("Hello", a)
true

julia> findfirst("Hello", a)
1:5

有关
findfirst()
occursin()
的更多信息,请参阅Julia文档

据我所知,虽然没有Julia函数返回所有事件的索引,但使用
findnext
很容易创建一个函数:

julia> import Base.findall
julia> function findall(pattern,string::AbstractString)
    toReturn = UnitRange{Int64}[]
    s = 1
    while true
        range = findnext(pattern,string,s)
        if range == nothing
             break
        else
            push!(toReturn, range)
            s = first(range)+1
        end
    end
    return toReturn
end

julia> st = "Today is a fresh day: not too warm, not to cold, just fresh!"
"Today is a fresh day: not too warm, not to cold, just fresh!"
julia> ranges = findall("fresh",st)
2-element Array{UnitRange{Int64},1}:
 12:16
 55:59
julia> st2 = "aaffssffssffbbffssffcc"
"aaffssffssffbbffssffcc"
julia> ranges = findall("ffssff",st2)
3-element Array{UnitRange{Int64},1}:
 3:8  
 7:12 
 15:20
julia> ranges = findall("zz",st2)
0-element Array{UnitRange{Int64},1}
如果只想说明完全独立的模式,请将
s=first(range)+1
替换为
s=last(range)+1

您可以尝试
contains()
search()


这两个函数也都采用正则表达式,而不仅仅是子字符串。例如
occursin(r“H\w+?o”,a)
findfirst(r“H\w+?o”,a)
注意,现在应该在core中提供类似的东西(Julia 1.3)。。
contains(string, substring)

Return a:b, first position, end position
search(string, substring)

Return true or false