试试这个(正则表达式和转换):
String source = "My Favorite numbers are: 42, 0x42, 24 and 0x24";
String result = Regex.Replace(source, @"0x(\d|[a-f]|[A-F])+",
(MatchEvaluator) (match => Convert.ToInt32(match.Value, 16).ToString()));
Run Code Online (Sandbox Code Playgroud)
我认为所有的十六进制数都是非负的和足够小,是int.