我正在尝试进行选择性替换,因此请替换字符串中的所有内容,但不要替换 [ & ] 之间的字符。
例如,如果输入字符串是“yyyy[m]mm”,我想将所有 m 替换为大写([ & ] 之间的除外),结果应该是 yyyy[m]MM。
有任何想法吗?
谢谢。
至少在您的示例中,这将做到这一点。它使用否定的lookbehind和否定的lookahead来只匹配m
没有被括号包围的s。它可以使用[mm]
但不能使用[mmm]
or [mmdd]
。
Regex.Replace("yyyy[m]mm", @"(?<!\[)m(?!\])", "M")