Каков синтаксис Julia для групп захвата регулярных выражений (например, $1 в Perl)?
Интересно, каков эквивалент Джулии в $1, $2, ... в регулярном выражении Perl (доступ к подстрокам, захваченным регулярным выражением)?
Например
$s = "some random string";
$s =~ m/(o.e).+(i.g)/;
print $1, "\n", $2;
печать
ome
ing
1 ответ
Решение
Как объясняет руководство Julia, вы можете получить захваченные подстроки из RegexMatch
объект путем доступа к его captures
поле или использование getindex
, Например:
julia> s = "some random string"
"some random string"
julia> m = match(r"(o.e).+(i.g)", s)
RegexMatch("ome random string", 1="ome", 2="ing")
julia> m[1] # access using getindex
"ome"
julia> m[2]
"ing"
julia> m.captures
2-element Array{Union{SubString{String}, Void},1}:
"ome"
"ing"
julia> m = match(r"om", s) # no captured substrings
RegexMatch("om")
julia> m.captures
0-element Array{Union{SubString{String}, Void},1}
julia> m = match(r"ox", s)
julia> typeof(m) # no match, m is nothing
Void