c#语言区分大小写,关于字符串:C#中不区分大小写的比较

本问题已经有最佳答案,请猛点这里访问。

我用下面的代码比较两个字符串

字符串1.contains(字符串2)

但是我没有得到不区分大小写搜索的结果。而且我不能用字符串。比较一下,因为我不想匹配整个名字,因为名字很大。我需要进行不区分大小写的搜索,搜索文本可以是string1包含的任何长度。

例如,术语是名称。我在文本框中输入"erm",得到结果。但是当我输入"term"时,我没有得到任何结果。有人能帮我吗:)

string.Equals("this will return true","ThIs WiLL ReTurN TRue", StringComparison.CurrentCultureIgnoreCase)

或者,对于包含

if (string1.IndexOf(string2, StringComparison.CurrentCultureIgnoreCase) >= 0)

保罗……这让我很难过。

我更喜欢这样的扩展方法。

public static class StringExtensions

{

public static bool Contains(this string source, string value, StringComparison compareMode)

{

if (string.IsNullOrEmpty(source))

return false;

return source.IndexOf(value, compareMode) >= 0;

}

}

请注意,通过这种方式,您可以避免在大小写中进行代价高昂的转换。

可以使用此语法调用扩展

bool result ="This is a try".Contains("TRY", StringComparison.InvariantCultureIgnoreCase);

Console.WriteLine(result);

请注意:上述扩展(对于每个扩展方法为true)应在非嵌套、非泛型静态类内定义,请参阅msdn-ref

扩展名与.NET 2.0不兼容…

contains方法是默认方法,即使我更改了您的方法的名称,也不会得到扩展名。我想我做错事了

您是否在静态类中插入了上述代码?

不使用.NET 2.0

将两个字符串都转换为相同的大小写,可以是大写的,也可以是小写的。

string1.ToUpper().Contains(string2.ToUpper());

昂贵的…

为什么不这样:

if (string1.IndexOf(string2, StringComparison.OrdinalIgnoreCase) >= 0)

{

}

我喜欢这个!我甚至不知道indexof接受StringComparison时有过载。

这对我很有用。!!!谢谢!

Regex.IsMatch(string1,string2,RegexOptions.IgnoreCase);

这将返回布尔值…..

可以将两个字符串都转换为大写,也可以使用正则表达式:

using System.Text.RegularExpressions;

class Program {

static void Main(string[] args) {

string string1 ="TermSomething";

string string2 ="term";

bool test1 = string1.ToUpperInvariant().Contains(string2.ToUpperInvariant());

bool test2 = Regex.IsMatch(string1, Regex.Escape(string2), RegexOptions.IgnoreCase);

}

}

请注意,如果使用正则表达式,则应转义搜索字符串,以便逐字解释特殊的regex字符。

regex是否符合characterwise?就像"er"在"term"中出现一样

@凤凰:如果你说的"性格"是指"呃"和"re"不一样,那么是的……

string1.ToUpperInvariant().Contains(string2.ToUpperInvariant());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值