【发布时间】:2012-06-22 07:12:08
【问题描述】:
例如:
S1: "some filename contains few words.txt"S2: "some filename contains few words - draft.txt"S3: "some filename contains few words - another draft.txt"S4: "some filename not contains few words.txt"
需要注意的是,我可以为第一个字符串获取 S2 或 S3,而其他字符串则可以匹配。
已编辑:我有“主”字符串,我需要找到匹配项。
假设在第一轮中,我发现了错别字。
现在我只需要匹配整个单词。
我希望能够确定 7 个单词中有 5 个匹配,或者 10 个单词中有 7 个匹配。“X out of Y”的确切数字不太重要。
重要的是如何找到X个单词的区别,不管它们在句子中的位置。
谢谢
【问题讨论】:
-
添加适当的语言标签。
-
不确定这是否可以使用 RegEx 完成,但请看一下 Levenshtein 距离算法:dotnetperls.com/levenshtein
-
这并不适合正则表达式;更像是寻找共同的子串。
-
@dirkgentle 逻辑对我来说很重要。剩下的就是技术性了。我更喜欢 c#、javascript 或 java。
-
您可以使用多种相似性度量。 Levinshtein 距离当然是一个受欢迎的候选者,但它可能与您对相似百分比的直觉不完全相符。您还可以查看使用的 n-gram 算法,例如用于语言识别; Google for TextCat。
标签: c# java javascript regex