正则表达式,用于将分隔的 ASCII 数字转换为字符



我有嵌入括号数字的数据,我想将其转换为字符。 这些数字表示字符的 ASCII 十进制代码。 有没有办法让正则表达式将数字转换为字符串?

例如:

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

。应该转换为...

|PEANUT BUTTER + JELLY = NIRVANA|

我似乎想不出任何有效的方法。

在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方法可以将函数作为第二个参数。

如果您正在使用 .NET,则 Regex.Replace() 方法可能是您要查找的方法:

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

最新更新