【问题标题】:Regular expression in RubyRuby 中的正则表达式
【发布时间】:2012-09-07 05:13:30
【问题描述】:

http://www.example.com/books?_pop=mheader

什么是正则表达式来匹配这个和任何在 URL 中有“书”作为模式匹配之一的 URL?该站点有一个书籍类别和该类别下的各种其他子类别。如何遍历所有 URL 以搜索 book ?

require 'anemone'
Pattern = %r[(\/books)*]
Anemone.crawl("http://www.example.com/") do |anemone|
  anemone.on_pages_like(Pattern) do |page|
    puts page.url
  end
end

【问题讨论】:

  • 如果您使用的是%r[...],那么您将不需要反斜杠。另请注意,像您的模式这样的常量应该是ALL_CAPS,类应该是MixedCase

标签: ruby regex anemone


【解决方案1】:

http://rubular.com/ 是测试 Ruby 正则表达式的有用工具。

正则表达式很简单,/http:\/\/.+(books)/。它也匹配 http:// 以帮助确保它是一个 url。这是rubular testhttp://www.example.com/reference-books-2300

【讨论】:

  • 我更新了 rubular 示例以使正则表达式匹配该链接
【解决方案2】:

在您的 url 中匹配 /books 的模式应该只是“/books”

这是一个测试您的正则表达式 http://regexpal.com 的好网站,以确保您至少拥有正确的那部分代码。

【讨论】:

    猜你喜欢
    • 2011-08-06
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2020-10-24
    相关资源
    最近更新 更多