C#
string resultString = Regex.Replace(subjectString, @"\d+",
                                      new MatchEvaluator(ComputeReplacement));

Regex regexObj = new Regex(@"\d+");
string resultString = regexObj.Replace(subjectString,
                                         new MatchEvaluator(ComputeReplacement));

public String ComputeReplacement(Match matchResult) {
    int twiceasmuch = int.Parse(matchResult.Value) * 2;
    return twiceasmuch.ToString();
}


VB.NET
Dim MyMatchEvaluator As New MatchEvaluator(AddressOf ComputeReplacement)
Dim ResultString = Regex.Replace(SubjectString, "\d+", MyMatchEvaluator)

Dim RegexObj As New Regex("\d+")
Dim MyMatchEvaluator As New MatchEvaluator(AddressOf ComputeReplacement)
Dim ResultString = RegexObj.Replace(SubjectString, MyMatchEvaluator)

Public Function ComputeReplacement(ByVal MatchResult As Match) As String
    Dim TwiceAsMuch = Int.Parse(MatchResult.Value) * 2;
    Return TwiceAsMuch.ToString();
End Function


Java
StringBuffer resultString = new StringBuffer();
Pattern regex = Pattern.compile("\\d+");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
    Integer twiceasmuch = Integer.parseInt(regexMatcher.group()) * 2;
    regexMatcher.appendReplacement(resultString, twiceasmuch.toString());
}
regexMatcher.appendTail(resultString);


JavaScript
var result = subject.replace(/\d+/g,
                               function(match) { return match * 2; }
                             );


PHP
$result = preg_replace_callback('/\d+/', compute_replacement, $subject);

function compute_replacement($groups) {
    return $groups[0] * 2;
}

$result = preg_replace_callback(
    '/\d+/',
    create_function(
        '$groups',
        'return $groups[0] * 2;'
    ),
    $subject
);


Perl
$subject =~ s/\d+/$& * 2/eg;


Python
result = re.sub(r"\d+", computereplacement, subject)

reobj = re.compile(r"\d+")
result = reobj.sub(computereplacement, subject)

def computereplacement(matchobj):
    return str(int(matchobj.group()) * 2)


Ruby
result = subject.gsub(/\d+/) {|match|
    Integer(match) * 2
}
