【发布时间】:2011-06-23 04:33:53
【问题描述】:
我想编写一个实用函数/模块,它将提供简单的通配符/glob 匹配字符串。我不使用正则表达式的原因是用户最终将使用某种配置文件提供匹配的模式。我找不到任何稳定的宝石 - 尝试过小丑,但设置有问题。
我正在寻找的功能很简单。例如,给定以下模式,以下是匹配项:
pattern | test-string | match
========|=====================|====================
*hn | john, johnny, hanna | true , false, false # wildcard , similar to /hn$/i
*hn* | john, johnny, hanna | true , true , false # like /hn/i
hn | john, johnny, hanna | false, false, false # /^hn$/i
*h*n* | john, johnny, hanna | true , true , true
etc...
我希望它尽可能高效。我考虑过从模式字符串创建正则表达式,但这在运行时似乎效率很低。对此实施有何建议?谢谢。
编辑:我使用的是 ruby 1.8.7
【问题讨论】:
标签: ruby pattern-matching glob string-matching