Ruby on rails 如何让正则表达式忽略URL字符串?
我使用以下Regexp通过分号分隔字符串来创建值哈希:Ruby on rails 如何让正则表达式忽略URL字符串?,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我使用以下Regexp通过分号分隔字符串来创建值哈希: Hash["photo:chase jarvis".scan(/(.*)\:(.*)/)] // {'photo' => 'chase jarvis'} 但我也希望能够在字符串中包含URL,并识别它,以便它在哈希的值端维护URL部分,即: Hash["photo:http://www.chasejarvis.com".scan(/(.*)\:(.*)/)] // Results in {'photo:http' => '/
Hash["photo:chase jarvis".scan(/(.*)\:(.*)/)]
// {'photo' => 'chase jarvis'}
但我也希望能够在字符串中包含URL,并识别它,以便它在哈希的值端维护URL部分,即:
Hash["photo:http://www.chasejarvis.com".scan(/(.*)\:(.*)/)]
// Results in {'photo:http' => '//www.chasejarvis.com'}
当然,我想要:
Hash["photo:chase jarvis".scan(/ ... /)]
// {'photo' => 'http://www.chasejarvis.com'}
你怎么知道一个人的姓和名 除非您有解决方案,否则将
chasejarvis
更改为chase
和jarvis
可能是不可能的
你已经知道你项目中每个人的名字了吗?没有人使用像charvisdjarvis这样的中间名的首字母(假设名称为“Charvis D.Jarvis”)如果您只想匹配第一个冒号,您可以将
(.*):(.*)
更改为([^:]*)\:(.*)
或者,您可以将其设置为非贪婪匹配,但我更喜欢说“非冒号”。您的意思是:Hash[“photo:…/)]//结果为{'photo'=>'}