ruby - 给定格式化文件名的正则表达式匹配某些条件?

标签 ruby regex

(抱歉标题不好,任何建议表示赞赏);-)

好吧,考虑一下这些字符串:

first = "SC/SCO_160ZA206_T_mlaz_kdiz_nziizjeij.ext"
second = "MLA/SA2_jkj15PO_B_lkazkl lakzlk-akzl.oxt"
third = "A12A/AZD_KZALKZL_F_LKAZ_AZ__azaz___.ixt"

我正在寻找一个正则表达式来获取这样的数组(在 ruby​​ 中):

first_array = ['SCO', '160ZA206', 'T', 'mlaz_kdiz_nziizjeij']
second_array = ['SA2', 'jkj15PO', 'B', 'lkazkl lakzlk-akzl']
third_array = ['AZD', 'KZALKZL', 'F', 'LKAZ_AZ__azaz___']

第一个匹配项必须是 / 之后和第一个 _

之前的任何内容

第二个匹配项必须是第一个和第二个之间的任何值 _

第三个匹配项必须是第二个和第三个之间的任何值 _

最后一个匹配项必须是第三个 _ 和最后一个 之间的任何内容。

我无法获取:[^\/].?([A-Z]*)_(.*)_(.*)[\.$] :-(

最佳答案

你非常接近。只需向第二个匹配器添加一个问号使其成为惰性(否则,它不会在第一个下划线处停止),然后复制该匹配器。

[^\/].?([A-Z]*)_(.*?)_(.*?)_(.*)[\.$]

关于ruby - 给定格式化文件名的正则表达式匹配某些条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749266/

相关文章:

visual-studio - 正则表达式:查找/替换之前没有给定字符串的所有子字符串?

ruby-on-rails - 调用时未调用 Rails ApplicationMailer 方法

ruby-on-rails - 设计用户级别理论

ruby - 构建 Jenkins Sonar-ruby-plugin

ruby - Heroku 上 Rack::Static 应用程序的 HTTP 基本身份验证

regex - 正则表达式,删除最后一个正斜杠后的所有内容

ruby-on-rails - 一个异常复杂的 ActiveRecord 关系

php - 具有负向后查找和未知中段 PHP 的正则表达式

javascript - 不必要的转义字符 :\[ no-useless-escape

regex - 在学习正则表达式时混合字符串解析可以吗?