作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 [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;
}
输出除外
[City] [City] [City] [City] [City]
那是行不通的,因为 regex
语法没有完成
最佳答案
三点:
要匹配文本中的方括号 []
,您需要在正则表达式中对它们进行转义:@"\[city\]"
在 Regex.Replace
中添加忽略大小写的选项 RegexOptions.IgnoreCase
对于“包含”,它不使用正则表达式。使用 Regex.IsMatch
相反。
所以这会把你问题中的代码变成这样:
var text = textbox.Text;
var pattern = @"\[City\]";
// Will match [city], [cITy], [CITY], but not exactly [City]
if (Regex.IsMatch(text, pattern, RegexOptions.IgnoreCase) && !Regex.IsMatch(text, pattern))
{
text = Regex.Replace(text, pattern, "[City]", RegexOptions.IgnoreCase);
// same code after that
}
关于c# - 如何将字符串中的 [city] 替换为 [City],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59181107/
我是一名优秀的程序员,十分优秀!