Leo*_*rdo 14 c# string-comparison
我正在开发一个C#4.5应用程序,我需要一个函数来返回true以进行以下比较:
"blaLéOnArd/ o bla".ComplexContains("leonardo")
换句话说,我string.Compare(str1, str2, CultureInfo.InvariantCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreSymbols | CompareOptions.IgnoreNonSpace)还需要检查"包含!
有人可以帮忙吗?
Jon*_*eet 33
您可以使用适当的CompareInfo然后CompareInfo.IndexOf(string, string, CompareOptions)并检查-1的结果.样品:
using System;
using System.Globalization;
class Program
{
static void Main()
{
var compareInfo = CultureInfo.InvariantCulture.CompareInfo;
var options = CompareOptions.IgnoreCase |
CompareOptions.IgnoreSymbols |
CompareOptions.IgnoreNonSpace;
var haystack = "bla Lé OnAr d/o bla";
var needle = "leonardo";
var index = compareInfo.IndexOf(haystack, needle, options);
Console.WriteLine(index); // 4
}
}
Run Code Online (Sandbox Code Playgroud)
或者以方法形式:
private static bool ComplexContains(string source, string value)
{
var index = CultureInfo.InvariantCulture.CompareInfo.IndexOf
(source, value, CompareOptions.IgnoreCase |
CompareOptions.IgnoreSymbols | CompareOptions.IgnoreNonSpace);
return index != -1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3133 次 |
| 最近记录: |