C#IndexOf IgnoreCase Special Chars

Kup*_*Kup 1 c#

如何使用特殊字符进行indexOf Case Insensite?我需要搜索"benefícios"这个词,我希望IndexOf找到它,即使我不使用"i"上的特殊字符

这样我就找不到了:

string str = "candidatar-se a benefícios";
string word = "beneficio";
str.IndexOf(word, StringComparison.OrdinalIgnoreCase)
Run Code Online (Sandbox Code Playgroud)

但有了这个,我可以:

string str = "candidatar-se a benefícios exclusivos";
string word = "benefício";
str.IndexOf(word, StringComparison.OrdinalIgnoreCase)
Run Code Online (Sandbox Code Playgroud)

谢谢

Cha*_*ger 5

使用CompareInfo相关文化和使用CompareOptions.IgnoreNonSpace:

string str = "candidatar-se a benefícios";
string word = "beneficio";

var compareInfo = CultureInfo.InvariantCulture.CompareInfo;
compareInfo.IndexOf(str, word, CompareOptions.IgnoreNonSpace);
Run Code Online (Sandbox Code Playgroud)

您还可以组合其他比较选项 - 如果您也想忽略大小写,例如,使用CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase.

IndexOfCompareOptions的文档可能会有所帮助.