Perl 6, 57 bytes
{S[\.<((\d)*]=[~] $0[^reduce {$^a>($^b&++$)??$b!!$a},$0]}
Explanation
{
S[ # replace regex match
\. # literal dot
<( # start match
(\d)* # sequence of digits, stored in $0
]= # with
[~] # concatenation of
$0[^ # digits up to
reduce { # reduce digits
$^a>($^b&++$) # if digit and index less than acc
??$b # then digit
!!$a # else accumulator
},$0
]
}