From 264e667b86381528131c45c9b6e8f54ad168c73f Mon Sep 17 00:00:00 2001 From: Vance Shipley Date: Wed, 4 Apr 2012 18:17:33 +0530 Subject: extend re back reference syntax with \g escape sequence Add the \gN and \g{N} syntax for back references in re:replace/3,4 to allow use with numeric replacement strings. --- lib/stdlib/src/re.erl | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib/stdlib/src/re.erl') diff --git a/lib/stdlib/src/re.erl b/lib/stdlib/src/re.erl index 246d535943..70566e48dd 100644 --- a/lib/stdlib/src/re.erl +++ b/lib/stdlib/src/re.erl @@ -355,6 +355,12 @@ apply_mlist(Subject,Replacement,Mlist) -> precomp_repl(<<>>) -> []; +precomp_repl(<<$\\,$g,${,Rest/binary>>) when byte_size(Rest) > 0 -> + {NS, <<$},NRest/binary>>} = pick_int(Rest), + [list_to_integer(NS) | precomp_repl(NRest)]; +precomp_repl(<<$\\,$g,Rest/binary>>) when byte_size(Rest) > 0 -> + {NS,NRest} = pick_int(Rest), + [list_to_integer(NS) | precomp_repl(NRest)]; precomp_repl(<<$\\,X,Rest/binary>>) when X < $1 ; X > $9 -> %% Escaped character case precomp_repl(Rest) of -- cgit v1.2.3