【发布时间】: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
我有一个字符串
/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
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"
【讨论】:
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"]
【讨论】:
有点长,但在这种情况下,正则表达式可能只会让事情变得更难阅读:
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-')
【讨论】: