2009-12-10 59 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」)這樣的中間名稱的初始名稱。

相關問題