Каков синтаксис 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
Другие вопросы по тегам