【发布时间】:2020-03-29 13:20:54
【问题描述】:
我想将[city], [cIty], [ciTY], ... 替换为[City]。
我认为正则表达式是一个很好的解决方案,但我不擅长正则表达式。
试用过的代码:
var text = "[City] [CIty] [ciTY] [city] [CITy]";
if (text.Contains("[city]"))
{
//text = text.Replace("[city]", "[City]");
text = Regex.Replace(text, @"[city]", "[City]");
textbox.Text = text;
textbox.SelectionStart = textbox.Text.Length;
textbox.SelectionLength = 0;
}
输出除外
[城市] [城市] [城市] [城市] [城市]
那不行,因为regex语法没有完成
【问题讨论】:
-
首先,您需要在搜索中忽略大小写选项,添加为参数:
RegexOptions.IgnoreCase。其次,括号必须在正则表达式中进行转义,因为它们通常具有特殊含义:@"\[city\]" -
好吧,如果括号是您尝试匹配的一部分,您必须将它们转义以便正则表达式正确解释它们。
-
@Pac0 那也很好用,我该如何解决
if (text.Contains("[city]"))? -
@KingStone 检查正则表达式匹配,您可以使用
Regex.IsMatch,因为string.Contains不使用正则表达式。