-1

我有一些网址如下:

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没有?在这方面有什么帮助吗?说第一个和第三个 URL 有7380072555874数字,fileEntityId但第二个没有。

谢谢

4

2 回答 2

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]
于 2013-01-24T04:43:10.830 回答
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"]

然后你可以检查它是否是一个数字。

于 2013-01-24T05:33:41.850 回答