【问题标题】:Extract particular part of string matching regex? [closed]提取字符串匹配正则表达式的特定部分? [关闭]
【发布时间】:2013-12-12 17:50:19
【问题描述】:

我有一个字符串

/example/look-into-it/date-2014-08-23-to-2014-08-30

我需要一个正则表达式,以便我可以从该字符串中获取以下 4 项:

part1: 示例 part2: 调查 date_from: 2014-08-23 date_to: 2014-08-30

任何关于正则表达式的帮助?

【问题讨论】:

    标签: ruby regex string substring


    【解决方案1】:
    string = "/example/look-into-it/date-2014-08-23-to-2014-08-30"
    
    data = s.match(/\/(?<part1>.*)\/(?<part2>.*)\/date\-(?<date_from>.*)\-to\-(?<date_to>.*)/)
    => #<MatchData
    "/example/look-into-it/date-2014-08-23-to-2014-08-30"
    part1:"example"
    part2:"look-into-it"
    date_from:"2014-08-23"
    date_to:"2014-08-30">
    md[:part1]
    => "example"
    

    【讨论】:

      【解决方案2】:
      s = "/example/look-into-it/date-2014-08-23-to-2014-08-30"
      md = s.match(/\/(.*?)\/(.*?)\/date\-(.*)\-to\-(.*)/)
      p md[1..4]
      

      结果:

      ["example", "look-into-it", "2014-08-23", "2014-08-30"]
      

      【讨论】:

        【解决方案3】:

        有点长,但在这种情况下,正则表达式可能只会让事情变得更难阅读:

        s = "/example/look-into-it/date-2014-08-23-to-2014-08-30"
        s.slice!(0) # Remove first '/'
        
        words, dates = s.split('/date-')
        part1, part2 = words.split('/')
        date_from, date_to = dates.split('-to-')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-21
          • 2020-05-10
          • 2010-09-15
          • 1970-01-01
          • 2021-11-30
          • 1970-01-01
          相关资源
          最近更新 更多