我在一个数据库表中有一列存储字符串,其中SOME非字母数字字符存储为花括号之间的ASCII整数。
示例:C:\Folder#3\File_1_@.TXT在数据库中存储为C:\Folder{35}3\File{95}1{95}{64}.TXT
我想写一个函数,我可以传递一个字符串作为参数,然后检查它是否包含字符# ?% @
如果是这样,我想处理字符串并将这些ASCII转换回它们的char等价物。
简而言之,如果我传递“C:\Folder{35}3\File{95}1{95}{64}.TXT”作为输入字符串,我希望“C:\Folder#3\File_1@.TXT”作为输出。
我一直在尝试使用System.Text.RegularExpressions来解决这个问题,但没有任何进展。
任何帮助都很感激。
3条答案
按热度按时间tyky79it1#
你只需要在正则表达式中使用lambda表达式。替换:
输出结果:
函数
((char)int.Parse(m.Groups[1].Value)).ToString())
从ascii值中获取字符(这里是字符串而不是int)1yjd4xko2#
我觉得你解决问题的方法很好。我可以建议你用途:
你的模式可以是正则表达式:**{.}|{..}|{...}**匹配大括号内的所有字符(最多3个字符),您的匹配计算器可能只是一个ASCII到char转换器。
请参阅下面的Microsoft文档:
system-text-regularexpressions-regex-replace
km0tfn4u3#
希望这能帮上忙。