ruby匹配两个基于4个不同标准的字符串

时间:2014-02-10 21:22:57

标签: ruby regex pattern-matching

我正在创建快速搜索rails应用功能。任何有关如何构建以下匹配规范的帮助将不胜感激。

基本上,当用户输入要搜索的名称时,他们应该根据以下匹配条件获得结果。

accept match on first 3 chars (e.g. Jon for Jones)
reject match on less than 3 chars (e.g. Jo for Jones)
accept exact match for 2 char author name (e.g. Li for Li)
reject exact match on 1 char author name
reject mismatch on chars beyond 3 (e.g. reject Jonis for Jones)

这可以用正则表达式完成吗?

1 个答案:

答案 0 :(得分:1)

matchto = 'Jones'.downcase
input = 'Jon'.downcase

matchto.start_with?(input) && 1 < input.length &&
    ( input.length == matchto.length || 2 < input.length )