【发布时间】:2009-07-16 18:32:21
【问题描述】:
我对正则表达式了如指掌,并认为这是学习至少最基本的基础知识的好机会。
如何在 C# 中使用正则表达式进行这种不区分大小写的字符串替换?
myString.Replace("/kg", "").Replace("/KG", "");
(请注意,'/' 是文字。)
【问题讨论】:
我对正则表达式了如指掌,并认为这是学习至少最基本的基础知识的好机会。
如何在 C# 中使用正则表达式进行这种不区分大小写的字符串替换?
myString.Replace("/kg", "").Replace("/KG", "");
(请注意,'/' 是文字。)
【问题讨论】:
你可以使用:
myString = Regex.Replace(myString, "/kg", "", RegexOptions.IgnoreCase);
如果你要多次这样做,你可以这样做:
// You can reuse this object
Regex regex = new Regex("/kg", RegexOptions.IgnoreCase);
myString = regex.Replace(myString, "");
使用(?i:/kg) 将使较大的正则表达式的那一点不区分大小写 - 我个人更喜欢使用RegexOptions 使选项影响整个模式。
MSDN 有 pretty reasonable documentation 的 .NET 正则表达式。
【讨论】:
像这样:
myString = Regex.Replace(myString, "/[Kk][Gg]", String.Empty);
请注意,它还将处理 /kG 和 /Kg 的组合,因此它比您的字符串替换示例做得更多。
如果您只想处理 /kg 和 /KG 的特定组合:
myString = Regex.Replace(myString, "/(?:kg|KG)", String.Empty);
【讨论】:
"/[kK][gG]" 或 "(?i:/kg)" 将为您匹配。
声明一个新的正则表达式对象,将其中一个作为您的内容传递。然后运行 regex.replace。
【讨论】:
这取决于您想要实现的目标。我假设您想删除斜线后的一系列字符?
string replaced = Regex.Replace(input,"/[a-zA-Z]+","");
或
string replaced = Regex.Replace(input,"/[a-z]+","",RegexOptions.IgnoreCase);
【讨论】:
Regex regex = new Regex(@"/kg", RegexOptions.IgnoreCase );
regex.Replace(input, "");
【讨论】:
Here 是使用 Regex.replace 函数的示例。
【讨论】: