使用NSRegularExpression查找某个阶段与另一个短语的“关闭”程度

时间:2011-04-15 16:31:52

标签: objective-c regex

我试图弄清楚如何使用NSRegularExpression来查看“关闭”字符串与另一个字符串的匹配程度。我知道我可以创建一组子串并使用NSRange来查看每个子串。例如。

“up”,“to”,“a”,“point”匹配“up two a point”我可以匹配4中的3个 同样,“向上一点”与3匹配,“向上一点”与所有4匹配。

我希望使用正则表达式我可以概括模式匹配,这样我就可以使用“达到一个点”并将其与我在另一个字符串中找到的匹配,例如:

uptoapoint, 在一定程度上, 在一定程度上, 太点了, 等,获得“百分比”匹配。

不确定这是否可行,因此我的问题。感谢您提供任何帮助/建议。

2 个答案:

答案 0 :(得分:4)

正则表达当然不是正确的工具

请改为:

  1. 通过[string uppercaseString][string lowercaseString]
  2. 运行字符串来统一字符串
  3. 在统一字符串之间计算Levenshtein Distance
  4. ...
  5. 利润!
  6. Levenshtein距离(或编辑距离)是需要在/ {/ 1}中交换/删除/添加的字符的绝对数量为了将其变形为stringA

    Levenshtein距离

    Objective-C Implementation

    扩展笔记:这看起来并不像你有危险,但值得注意的是,虽然Levenshtein距离对于比较短弦非常方便,但它对于计算两者之间的距离并不是很有用。整个文件。大多数 Levenshtein距离的实现需要stringB的内存空间(m和n是字符串的长度)。虽然有些实现能够将其减少到m*n(afaik),但它们的运行时间仍然需要m+n,这基本上相当于O(n*n)

答案 1 :(得分:1)