用小数表示所有的更换的十六进制数(Replacing all Hex numbers with De

2019-10-21 18:23发布

我有一个字符串: string s ="My Favorite numbers are: 42, 0x42, 24 and 0x24"
有没有使用正则表达式替换所有十六进制数到他们的十进制表示的方法吗?

对于上面的例子,我希望得到: "My Favorite numbers are: 42, 66, 24 and 36"

Answer 1:

试试这个( 正则表达式 转换 ):

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()));

我认为所有的十六进制数都是非负到可以int



文章来源: Replacing all Hex numbers with Decimal representation