在 .NET 中查找子字符串匹配的结尾
Posted
技术标签:
【中文标题】在 .NET 中查找子字符串匹配的结尾【英文标题】:Finding the end of a substring match in .NET 【发布时间】:2008-10-08 11:56:30 【问题描述】:我正在尝试查找与特定文化下的另一个字符串匹配的字符串中的子字符串的索引(由 System.CultureInfo 提供)。
例如,字符串“ass”匹配德国文化下“straße”中的子字符串“aß”。
我可以找到比赛开始的索引
culture.CompareInfo.IndexOf(value, substring);
但不使用蛮力,有没有一种简单的方法可以识别匹配的 2 个字符,而不是 3 个?
【问题讨论】:
我意识到我的问题与您的重复:***.com/questions/2835400/… 【参考方案1】:如果您使用捕获组,您可以捕获找到的完全匹配项,并从中确定匹配的字符数。
我现在举个例子有点时间紧迫,所以希望你能从我的描述中弄清楚。
也许我稍后会修改我的答案。
戴夫
【讨论】:
我不知道正则表达式可以在特定文化下运行 - 这是如何完成的? 文档指出不区分大小写的操作默认是区分区域性的。此时使用 Thread.CurrentCulture。但显然(在 .NET 2.0 下)它不匹配“ß”和“ss”,即使它们在该文化下是相同的。所以我的分析器对你没有帮助。 我知道我之前遇到过 MS 正则表达式的问题。例如,它的不区分大小写的匹配无法将小写 k 与开尔文符号匹配(尽管它们都具有相同的大写字母),并且无法处理多字节字符(这是这里的另一个要求)。【参考方案2】:正则表达式能处理 ss 与 ß 的区别吗?
【讨论】:
以上是关于在 .NET 中查找子字符串匹配的结尾的主要内容,如果未能解决你的问题,请参考以下文章
我需要一个正则表达式结果,不包括匹配模式的开头和结尾的子字符串