RegEx将分隔的ASCII编号转换为字符

时间:2016-01-31 17:41:16

标签: java regex

我的数据中嵌入了带括号的数字,我希望将其转换为字符。数字代表字符的ASCII十进制代码。有没有办法让RegEx表达式将数字转换为字符串?

例如:

(124)PEANUT(32)BUTTER(32)(43)(32)JELLY(32)(61)(32)NIRVAVA(124)

...应转换为......

|PEANUT BUTTER + JELLY = NIRVANA|

我似乎无法想出任何有用的东西。

2 个答案:

答案 0 :(得分:0)

这适用于JavaScript:

var input = '(124)PEANUT(32)BUTTER(32)(43)(32)JELLY(32)(61)(32)NIRVAVA(124)';

var output = input.replace(/\((\d+)\)/g, function(_, $1) {
  return String.fromCharCode(parseInt($1));
});

字符串上的replace方法可以将函数作为第二个参数。

答案 1 :(得分:0)

如果您正在使用.NET,Regex.Replace() method可能就是您正在寻找的内容:

string inputString = "(124)PEANUT(32)BUTTER(32)(43)(32)JELLY(32)(61)(32)NIRVAVA(124)";
string pattern = @"\((\d+)\)";
string fixedString = Regex.Replace(inputString, pattern, delegate (Match m) {
    return ((char)Int32.Parse(m.Groups[1].Value)).ToString();
});