如何使用特殊字符进行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)
谢谢
使用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.
IndexOf和CompareOptions的文档可能会有所帮助.