2013-01-24 50 views
-1

我有一些網址如下:如何檢查url是否包含fileEntityId的數字?

https://example.com/file/filegetrevision.do?fileEntityId=738007 
9&cs=4Pzbb2jPu3EHBzv8RQHrGcPm4hZZkRC-CfH0my4dP0M.arv 


https://example.com/file/filegetrevision.do?fileEntityId=&cs=2L 
5cx4UsMsFJgM05pPtB_Z8dRdL4CXLLcTeDhGPDBIg.arv 


https://example.com/file/filegetrevision.do?fileEntityId=2555874&cs=2L 
5cx4UsMsFJgM05pPtB_Z8dRdL4CXLLcTeDhGPDBIg.arv 

現在我需要檢查哪些網址有numbersfileEntityId或者有沒有呢?在這方面有什麼幫助?說第一個和第三個網址有7380072555874號碼與fileEntityId但第二個沒有。

感謝

回答

1

雖然我愛正則表達式,有更合適的工具包含在標準庫中:

require 'uri' 
require 'cgi' 

url = "https://example.com/file/filegetrevision.do?fileEntityId=7380079&cs=4Pzbb2jPu3EHBzv8RQHrGcPm4hZZkRC-CfH0my4dP0M.arv" 
query = URI::parse(url).query # => "fileEntityId=7380079&cs=4Pzbb2jPu3EHBzv8RQHrGcPm4hZZkRC-CfH0my4dP0M.arv" 
fileEntityId = CGI::parse(query)['fileEntityId'] # => ["7380079"] 

然後你可以檢查它是否是一個數字。

+0

'+ 1'給你!我沒有被介紹給這個libaray。我已經嘗試過@sergio showwn! – DoLoveSky

+0

啊。 'CGI :: parse'!事實上,這是更好的:) –

1

這裏我們使用正則表達式來找出是否一個字符串包含「fileEntityId =」後面跟着一個或多個數字:

urls = ['https://example.com/file/filegetrevision.do?fileEntityId=7380079&cs=4Pzbb2jPu3EHBzv8RQHrGcPm4hZZkRC-CfH0my4dP0M.arv', 
    'https://example.com/file/filegetrevision.do?fileEntityId=&cs=2L5cx4UsMsFJgM05pPtB_Z8dRdL4CXLLcTeDhGPDBIg.arv', 
    'https://example.com/file/filegetrevision.do?fileEntityId=2555874&cs=2L5cx4UsMsFJgM05pPtB_Z8dRdL4CXLLcTeDhGPDBIg.arv'] 


urls.map {|u| !!(u =~ /fileEntityId=\d+/)} # => [true, false, true] 
+0

'+ 1'給你糾正我的錯誤,我忘了把'+'放在我的一箇中。因此,我的一個沒有workrd! – DoLoveSky

相關問題