Ruby regex what does the \1 mean for gsub -
what \1 do?
for example
"foo bar bag".gsub(/(bar)/,'car\1')
i believe has how use parentheses, i'm not sure. explain me? , can stuff \2? if so, do?
each item surround parenthesis in searching part correspond number \1
, \2
, etc., in substitution part.
in example, there's 1 item surrounded parenthesis, "(bar)"
item, anywhere put \1
part inside parenthesis, swapped in. can put in \1
multiple times, handy if want repeat found item, legitimately write car\1\1\1
, "bar"
swapped in 3 times.
there's no use \2
because there's 1 item surrounded parentheses. however, if had (bar)(jar)
, \1
represent "bar"
, \2
represent "jar"
.
you things this:
\1\2\1\2\2\1
which become:
barjarbarjarjarbar
here's real-world example comes in handy. let's have name list this:
jones, tom smith, alan smith, dave wilson, bud
and want change this:
tom jones alan smith dave smith bud wilson
you search for:
(.+), (.+)
and replace with:
\2 \1
you replace with:
\1: \2 \1
which become:
jones: tom jones smith: alan smith smith: dave smith wilson: bud wilson
Comments
Post a Comment