我有一个字符串
/示例/外表 - 进入 - 它/日期2014年8月23日到2014年8月30日
我需要一个正则表达式,以便我可以从这个字符串中获取以下4个项目:
part1:example part2:look-to-it date_from:2014-08-23 date_to: 2014年8月30日
有关正则表达式的任何帮助吗?
答案 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-')