红宝石和黄瓜 - 这是什么意思?"([^"]*)"$ /

use*_*891 3 ruby windows syntax ruby-on-rails cucumber

我只想弄清楚以下Ruby中的含义.

"([^"]*)"$/   
Run Code Online (Sandbox Code Playgroud)

我现在使用黄瓜在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
Run Code Online (Sandbox Code Playgroud)

我现在明白它正在进行逻辑检查,点击了一个按钮.我做了一些研究,并发现以下Ruby中的符号含义(因为我是Ruby的新手)

? = method returns a boolean value.   
$ = global variable   
@ = instance variable   
@@ = class variable.   
^ = bitwise XOR operator.   
* = unpack array 
Run Code Online (Sandbox Code Playgroud)

我看不到找到命令的作用.我试图澄清函数如何与变量相关联,我认为这是我的最终线索.

非常感谢您的帮助.

jhe*_*099 7

这是一个正则表达式.表达式包含在"/"字符之间.

通过示例并使用您的代码:

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

被解释为一个字符串:

  • 匹配行的开头(^)
  • 匹配"我已进入"
  • 匹配单引号
  • (")匹配不是引用的所有内容(([^"]*))
  • 匹配"进入查询"
  • 匹配单引号(")
  • 匹配行的结尾$

有关Ruby和Regular表达式的更多信息,请参见http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm.