C#用正则截取字符串并替换里面的字符

2025-05-14 15:20:36
推荐回答(1个)
回答1:

这个简单

string str = "asdasd-qwe-qwe-qwa,aqweq,[a-a-1.gif],asd-123asd";
Regex rgx = new Regex(@"\[[^]]+\]");
str=rgx.Replace(str, (m) =>
{
    return m.Value.Replace("-", "_");
});
Console.WriteLine(str);

或者

string str = "asdasd-qwe-qwe-qwa,aqweq,[a-a-1.gif],asd-123asd";
str = Regex.Replace(str, @"(?<=\[[^\]]*)-+(?=[^\]]*\])", "_");
Console.WriteLine(str);

如果你的格式都是类似形式的,应该都可以替换成功。