寻找匹配
正则表达式有四个主要的有用函数,所有函数都以 needle, haystack
顺序接受参数。术语针和草堆来自英语成语在大海捞针。在正则表达式的背景下,正则表达式是针,文本是大海捞针。
match
函数可用于查找字符串中的第一个匹配项:
julia> match(r"(cat|dog)s?", "my cats are dogs")
RegexMatch("cats", 1="cat")
matchall
函数可用于查找字符串中正则表达式的所有匹配项:
julia> matchall(r"(cat|dog)s?", "The cat jumped over the dogs.")
2-element Array{SubString{String},1}:
"cat"
"dogs"
ismatch
函数返回一个布尔值,指示是否在字符串中找到匹配项:
julia> ismatch(r"(cat|dog)s?", "My pigs")
false
julia> ismatch(r"(cat|dog)s?", "My cats")
true
eachmatch
函数返回 RegexMatch
对象上的迭代器,适用于 for
循环 :
julia> for m in eachmatch(r"(cat|dog)s?", "My cats and my dog")
println("Matched $(m.match) at index $(m.offset)")
end
Matched cats at index 4
Matched dog at index 16