C#正则表达式选择性替换

C#正则表达式选择性替换,c#,regex,replace,C#,Regex,Replace,我正在尝试进行选择性替换,因此请替换字符串中的所有内容,但不要替换[&]之间的字符。 例如,如果输入字符串是“yyyy[m]mm”,我想将所有m替换为大写(除了[&]之间的那些),结果应该是yyy[m]mm 有什么想法吗 谢谢 至少在您的示例中,这样做就可以了。它使用a仅匹配未被括号包围的ms。它将与[mm]一起工作,但不会与[mmm]或[mmdd]一起工作 Regex.Replace("yyyy[m]mm", @"(?<!\[)m(?!\])", "M") Regex.Replace(

我正在尝试进行选择性替换,因此请替换字符串中的所有内容,但不要替换[&]之间的字符。
例如,如果输入字符串是“yyyy[m]mm”,我想将所有m替换为大写(除了[&]之间的那些),结果应该是yyy[m]mm

有什么想法吗


谢谢

至少在您的示例中,这样做就可以了。它使用a仅匹配未被括号包围的
m
s。它将与
[mm]
一起工作,但不会与
[mmm]
[mmdd]
一起工作

Regex.Replace("yyyy[m]mm", @"(?<!\[)m(?!\])", "M")

Regex.Replace(“yyyy[m]mm”,@”(?您能给出预期输入和输出的示例吗?感谢Tim S。这是我最后编写的例程:''public string ReplaceSelective(string data,string sourceString,string destString)'''{string pattern=@'(?使用反勾号来设置内联代码的格式。您可能希望转义
源字符串,例如:
Regex.escape(sourceString)
。这样,如果源字符串是
test.
,它仍然可以正常工作,并且与
“testy”
不匹配。