在.NET中查找子字符串匹配的结尾

在.NET中查找子字符串匹配的结尾,.net,unicode,string,culture,.net,Unicode,String,Culture,我试图在与特定区域性下的另一个字符串相匹配的字符串中查找子字符串的索引(由System.CultureInfo提供) 例如,字符串“ass”与德国文化中“straße”中的子字符串“aß”匹配 我可以使用 culture.CompareInfo.IndexOf(value, substring); 但是,如果不诉诸暴力,是否有一种简单的方法可以识别匹配的是2个字符,而不是3个?正则表达式是否能够处理ss与ß之间的区别?如果使用捕获组,您可以捕获找到的精确匹配,并从中确定匹配了多少个字符 我现在

我试图在与特定区域性下的另一个字符串相匹配的字符串中查找子字符串的索引(由System.CultureInfo提供)

例如,字符串“ass”与德国文化中“straße”中的子字符串“aß”匹配

我可以使用

culture.CompareInfo.IndexOf(value, substring);

但是,如果不诉诸暴力,是否有一种简单的方法可以识别匹配的是2个字符,而不是3个?

正则表达式是否能够处理ss与ß之间的区别?

如果使用捕获组,您可以捕获找到的精确匹配,并从中确定匹配了多少个字符

我现在举个例子有点费时,所以我希望你能从我的描述中理解出来

也许我以后会给出我的答案


Dave

我不知道正则表达式可以在特定的区域性下运行-这是如何实现的?文档中指出,默认情况下,不区分大小写的操作是区分区域性的。此时将使用Thread.CurrentCulture。但显然(在.NET2.0下)它与“ß”和“ss”不匹配,即使在那种文化下它们是相同的。所以我的anser帮不了你。我知道我以前在MS的正则表达式方面遇到过问题。它不区分大小写的匹配无法将小写k与开尔文符号(尽管它们都具有相同的大写)匹配,也无法处理多字节字符(这是这里的另一个要求)。我意识到我的问题与你的问题重复: