繁体   English   中英

Regex 查找并替换 C# 将部分文本编码为 base 64

[英]Regex find and replace C# Encode a part of text in base 64

我有一个问题。 我如何使用正则表达式查找和替换部分文本。 如果有人帮助我,我会很高兴。 这是代码:

Regex yourRegex = new Regex("(?<=\\[base64])(.*?)(?=\\[\\/base64])");
string result = yourRegex.Replace(Uri.UnescapeDataString(Body)),Helpers.Base64Encode(Convert.ToString(yourRegex)));
letterData.body = result;

我需要做的就是在正文中找到 [base64] HERE [/base64] 之间的文本。 并将此文本替换为不含“[base64][/base64]”的 base 64 编码文本

示例:[base64] 嗨,我的名字是 [/base64] 是安德鲁,你好吗

结果:SGkgbXkgbmFtZQ== 是安德鲁,你好吗

您可以将环视转换为匹配项,后跟可选的空白字符,因为您不想在替换后保留[base64][/base64]

然后使用回调 function 替换,您可以将捕获组 1 的值转换为 base64。

var Body = @"[base64] Hi my name [/base64] is Andrew, how are you";
Regex yourRegex = new Regex(@"(?s)\[base64]\s*(.*?)\s*\[/base64]");
string result = yourRegex.Replace(Body, m => 
    System.Convert.ToBase64String(
        System.Text.Encoding.UTF8.GetBytes(m.Groups[1].Value)
    )
);
Console.WriteLine(result);

Output

SGkgbXkgbmFtZQ== is Andrew, how are you

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM