arrays - Ruby 匹配数组中的字符串

标签 arrays ruby regex

我有一个这样的字符串:"Men's Beech River Cable T-Shirt" 我怎样才能从这个字符串中获取类别?

str = "Men's Beech River Cable T-Shirt"
str2 = "MEN'S GOOSE EYE MOUNTAIN DOWN VEST"
cat1 = str1.split.last # T-Shirt
cat2 = str2.split.last # VEST

TOPS = %w(jacket vest coat blazer parka sweater shirt polo t-shirt)

期望的结果:

category_str1 = "Tops" # Since T-Shirt (shirt) is in TOPS constant.
category_str2 = "Tops" # Since vest is in TOPS const.

我不知道如何更好地描述我的问题,我希望你能从提供的例子中理解它。

最佳答案

str = "Men's Beech River Cable T-Shirt"
cat_orig = str.split.last # T-Shirt

TOPS = %w(jacket vest coat blazer parka sweater shirt polo)
RE_TOPS = Regexp.union(TOPS)
category = "Tops" if RE_TOPS =~ cat_orig.downcase

请注意 %w() 样式数组语法中没有逗号。

关于arrays - Ruby 匹配数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33174253/

相关文章:

c - 字符串比较操作

php - 更新数据库表中所有行的 1 列

ruby - 如何避免在解码文件时出现 UndefinedConversionError?

c# - 如何编写正则表达式来匹配包含 XYZ 但不包含 ABC 的文本?

php - array_multisort - 不对我的完整表格进行排序

vb.net - 返回 vb.net 中的前一个索引?

ruby - 如何在 Ironruby 中使用 Ruby 库

ruby-on-rails - 如何遍历哈希列表?

python - 使用一个正则表达式替换字符并将它们包装在标签中

php - RegEx - 如何在文件扩展名前插入字符串