首页 > 解决方案 > 使用正则表达式在 \"test"\ 中仅编码单词测试?

问题描述

我只想在我的字符串中编码一个子字符串,这里test来自String str = \"test"\

有没有比我在下面做的更好的方法来做到这一点?也许通过正则表达式?

var fullStr = "\"\\test\"\\";
char[] charsToTrim = { '\"', '\\'};
string result = fullStr.Trim(charsToTrim);
string StrEncoded =  Convert.ToBase64String(Encoding.UTF8.GetBytes(result));

string retStr = "\"\\" + StrEncoded + "\"\\";

标签: c#

解决方案


您可能正在寻找这个正则表达式

(?<="\\).*?(?="\\)

(?<="\\)-> 正向后视(检查你身后是否有这些字符) (?="\\)-> 正向前瞻(检查你前面是否有这些字符)

.*-> 选择介于两者之间的所有内容

新代码:

        var fullStr = "\"\\test\"\\";
        char[] charsToTrim = { '\"', '\\'};
        string result = fullStr.Trim(charsToTrim);
        Console.WriteLine(result);
        string pattern = "(?<=\"\\\\).*?(?=\"\\\\)";
        var m = Regex.Match(fullStr, pattern, RegexOptions.IgnoreCase);
        Console.WriteLine(m.Value);

dotnet fiddle 示例

我的猜测是您正在寻找以下内容:

string pattern = "(?<=\"\\\\).*?(?=\\\\\")";

推荐阅读