首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >String.Replace忽略大小写

String.Replace忽略大小写
EN

Stack Overflow用户
提问于 2011-06-08 16:17:14
回答 14查看 172.1K关注 0票数 254

我有一个名为"hello world“的字符串

我需要把"world“改成"csharp”

为此,我使用:

代码语言:javascript
复制
string.Replace("World", "csharp");

但是结果是,我没有把字符串替换掉。原因是区分大小写。原始字符串包含"World“,而我正在尝试替换"world”。

有没有办法避免在string.Replace方法中区分大小写?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-06-08 16:19:29

您可以使用Regex并执行不区分大小写的替换:

代码语言:javascript
复制
class Program
{
    static void Main()
    {
        string input = "hello WoRlD";
        string result = 
           Regex.Replace(input, "world", "csharp", RegexOptions.IgnoreCase);
        Console.WriteLine(result); // prints "hello csharp"
    }
}
票数 354
EN

Stack Overflow用户

发布于 2016-02-26 14:17:27

很多使用正则表达式的建议。这个不带它的扩展方法怎么样:

代码语言:javascript
复制
public static string Replace(this string str, string old, string @new, StringComparison comparison)
{
    @new = @new ?? "";
    if (string.IsNullOrEmpty(str) || string.IsNullOrEmpty(old) || old.Equals(@new, comparison))
        return str;
    int foundAt = 0;
    while ((foundAt = str.IndexOf(old, foundAt, comparison)) != -1)
    {
        str = str.Remove(foundAt, old.Length).Insert(foundAt, @new);
        foundAt += @new.Length;
    }
    return str;
}
票数 32
EN

Stack Overflow用户

发布于 2013-10-13 08:40:40

扩展让我们的生活更轻松:

代码语言:javascript
复制
static public class StringExtensions
{
    static public string ReplaceInsensitive(this string str, string from, string to)
    {
        str = Regex.Replace(str, from, to, RegexOptions.IgnoreCase);
        return str;
    }
}
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6275980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档