提取字符串匹配正则表达式的特定部分?

时间:2013-11-27 07:40:20

标签: ruby regex string substring

我有一个字符串

  

/示例/外表 - 进入 - 它/日期2014年8月23日到2014年8月30日

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

  

part1:example part2:look-to-it date_from:2014-08-23 date_to:   2014年8月30日

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

3 个答案:

答案 0 :(得分:1)

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"]

答案 1 :(得分: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 :(得分:0)

稍微长一点,但这种情况下regexp可能会让事情更难阅读:

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-')