使用正则表达式在"测试"中仅编码单词测试?



我只想对字符串中的子字符串进行编码,这里是test来自String str = "test"

有比我下面做的更好的方法吗?也许是通过regEx?

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

您可能正在寻找此regex

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

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

.*->选择之间的所有内容

新代码:

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 = "(?<="\\).*?(?=\\")";

您可以将Regex.Match()MatchEvaluator一起使用。

...
string retStr = Regex.Replace(fullStr, "test", delegate (Match match)
{
return Convert.ToBase64String(Encoding.UTF8.GetBytes(match.Value));
});
...

最新更新