我有嵌入括号数字的数据,我想将其转换为字符。 这些数字表示字符的 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();
});