我在代码的一部分中使用匹配的URL。现在我使用正则表达式来实现这一点。这很好,但并不总是产生“好的”、简单可读的模式。是否定义了用于匹配URL的语言?它应该是这样的:http://*.example.com/*,所以简单的通配符和对URL有用的东西就在那里。
如果这些表达式可以简单地转换为regexp,那就更好了。你知道这样一种语言的规范吗,或者甚至知道一种实现,最好是ruby..否则我自己去实现它。关键是模式的可读性。感谢您的帮助!
发布于 2010-02-13 23:01:46
在开始之前,你必须仔细地弄清楚你的语法。乍一看,通过将语法转换为普通的正则表达式,可以很容易地实现您的目标:
s = 'http://*.example.com/*' #=> "http://*.example.com/*"
r = Regexp.compile("^#{Regexp.escape(s).gsub('\*','.*')}$") #=> http:examplecom
'http://test.example.com/path/to/doc.html' =~ r #=> 0
'http://test.example2.com/path/to/doc.html' =~ r #=> nil发布于 2010-04-28 01:39:06
URL可能需要一点技巧才能正确解析,特别是如果您想要符合标准的话。这就是Ruby拥有uri内置库的原因。
对于您想要的带有占位符的更高级的解析库,您应该研究一下addressable gem.
https://stackoverflow.com/questions/2257890
复制相似问题