我有一些网址如下:
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
现在我需要检查哪个网址numbers
与fileEntityId
或哪个网址没有?在这方面有什么帮助吗?说第一个和第三个网址包含738007
和2555874
个数字fileEntityId
,但第二个网址没有。{/ p>
由于
答案 0 :(得分: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]
答案 1 :(得分: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"]
然后你可以检查它是否是一个数字。