热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数组或散列中的正则表达式排序-Regexinarrayorhash-sorting

Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne,

I have a work folder directory.

我有一个工作文件夹目录。

holder = Dir.glob("*")
=> holder = ["Project One", "Project Two", "Project Three", "Backups", "Summer 2012"]

I would like to use regex in my script to sort a new file that is in another directory into one of the Project directories above. I can easily do this using a regex.match command like.

我想在我的脚本中使用正则表达式将另一个目录中的新文件排序到上面的一个Project目录中。我可以使用regex.match命令轻松完成此操作。

other_files = ["Project One Picture 2399.jpg", "Project Two Doc.txt"]
if /project\Done/i.match(other_files[0])
#if true cp to Project One directory i think you get the point

I would like to create regex expression from the holder array. So all i need to do is create another folder and the script will add another regex in the array. Is there an easy way to do this? Or is there a way to store regex in an array?

我想从holder数组创建regex表达式。所以我需要做的就是创建另一个文件夹,脚本将在数组中添加另一个正则表达式。是否有捷径可寻?或者有没有办法在阵列中存储正则表达式?

regex_array = ["/project\Done/i", "/project\Dtwo/i", "/project\Dthree/i", "/backups/i", "/summer\W\d\d\d\d/i"]

2 个解决方案

#1


3  

Regexp.new creates a new regex:

Regexp.new创建了一个新的正则表达式:

Regexp.new 'your expression'
# => /your expression/

You can push these onto your regex_array. You can store them as regexes, not strings.

你可以将它们推到你的regex_array上。您可以将它们存储为正则表达式,而不是字符串。

regex_array = holder.map {|folder| Regexp.new(folder.downcase, Regexp::IGNORECASE) }
# => [/project one/i, /project two/i, /project three/i]

#2


0  

You could skip regex_array with something like this:

您可以使用以下内容跳过regex_array:

holder = ["Project One", "Project Two", "Project Three", "Backups", "Summer 2012"]
other_files = ["Project One Picture 2399.jpg", "Project Two Doc.txt"]
other_files.each do |f|
  dir = holder.find {|d| f =~ /#{d}/i} 
  # copy file f to dir if dir
end

...though you might want a more elaborate regex.

...虽然你可能想要一个更精细的正则表达式。


推荐阅读
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文汇总了在正式宴会上常用的寒暄语句,包括欢迎词、感谢词及日常问候,适用于各种正式场合。这些语句不仅有助于提升交际礼仪,还能增进彼此之间的友好关系。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • 本文提供了使用Java实现Bellman-Ford算法解决POJ 3259问题的代码示例,详细解释了如何通过该算法检测负权环来判断时间旅行的可能性。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
author-avatar
叶子1209
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有