2009-12-10 137 views
0

我有以下的正则表达式由分号分隔字符串,创建值的散列:如何让正则表达式忽略URL字符串?

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'} 
+0

您是不是要说: Hash [“photo:http://www.chasejarvis.com”.scan(/ ... /)] //结果{'photo'=>' http://www.chasejarvis.com'} – asgerhallas 2009-12-10 14:47:05

回答

2

如果您只想匹配第一个冒号,您可以将(.*)\:(.*)更改为([^:]*)\:(.*)

或者,你可以使它成为一个非贪婪的匹配,但我更喜欢说“不冒号”。

0

如何找出一个人的姓和名?

chasejarvis更改为chasejarvis可能是不可能的,除非您有解决方案。

您是否已经知道您项目中的每个人的名字?没有人像charvisdjarvis(假设名称是“Charvis D. Jarvis”)这样的中间名称的初始名称。

相关问题