Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何让正则表达式忽略URL字符串?_Ruby On Rails_Ruby_Regex - Fatal编程技术网

Ruby on rails 如何让正则表达式忽略URL字符串?

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' => '/

我使用以下Regexp通过分号分隔字符串来创建值哈希:

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'=>'}