Рубин и огурец - что это значит?"([^"] *) "$ / - PullRequest
3 голосов
/ 24 марта 2012

Я просто пытаюсь понять, что ниже означает в Ruby.

"([^"]*)"$/   

У меня есть следующий пример кода на Ruby с использованием огурца:

require "watir-webdriver"
require "rspec/expectations"

Given /^I have entered "([^"]*)" into the query$/ do |term|
   @browser ||= Watir::Browser.new :firefox
   @browser.goto "google.com"
   @browser.text_field(:name => "q").set term
end

When /^I click "([^"]*)"$/ do |button_name|
   @browser.button.click
end

Then /^I should see some results$/ do
  @browser.div(:id => "resultStats").wait_until_present
  @browser.div(:id => "resultStats").should exist
  @browser.close
end

Я понимаю, что в данный момент выполняется логическая проверка нажатия кнопки. Я провел небольшое исследование вокруг и нашел следующее для символических значений в Ruby (так как я новичок в Ruby)

? = method returns a boolean value.   
$ = global variable   
@ = instance variable   
@@ = class variable.   
^ = bitwise XOR operator.   
* = unpack array 

Я не вижу, чтобы найти, что делает команда. Я пытаюсь уточнить, как именно функции связаны с переменными, и я думаю, что это окончательный ключ для меня.

Большое спасибо заранее за любую помощь.

1 Ответ

7 голосов
/ 24 марта 2012

Это регулярное выражение.Выражение содержится между символами "/".

В качестве примера и использования вашего кода:

/^I have entered "([^"]*)" into the query$/

интерпретируется как строка, которая:

  • Соответствует началу строки (^)
  • Соответствует "Я ввел"
  • Соответствует одной кавычке
  • (") Соответствует всемуэто не кавычка (([^ "] *))
  • Соответствует" в запросе "
  • Соответствует одной кавычке (")
  • Соответствует концустрока $

См. http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm для получения дополнительной информации о Ruby и регулярных выражениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...