Rubin og agurk - hvad betyder det? '([[^']] *) '$/

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger bare at finde ud af, hvad nedenstående betyder i Ruby.


"([^"]*)"$/   


Jeg har følgende kodeprøve i Ruby ved at bruge agurk i øjeblikket:


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


Jeg forstår i øjeblikket, at det er logisk at kontrollere, at en knap er blevet klikket. Jeg gjorde lidt forskning omkring og fandt følgende for symbolske betydninger i Ruby (som jeg er ny til Ruby)


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


Jeg kan ikke se for at finde hvad kommandoen gør. Jeg forsøger at præcisere præcis, hvordan funktioner er knyttet til variabler, og jeg synes, det er det sidste spor for mig.


Mange tak på forhånd for enhver hjælp.

Bedste reference


Det er et regulært udtryk. Udtrykket er indeholdt mellem '/' tegnene.


Som et eksempel og ved hjælp af din kode:


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


fortolkes som en streng, der:



  • Matcher begyndelsen af ​​linjen (^)

  • Matcher 'Jeg har indtastet'

  • Matcher et enkelt citat

  • (') Matcher alt, hvad der ikke er et citat (([[^']] *))

  • Matches 'i forespørgslen'

  • Matcher et enkelt citat (')

  • Matcher slutningen af ​​linjen $



Se http://www.tutorialspoint.com/ruby/ruby\_regular\_expressions.htm for mere information om Ruby og Regular expressions. [5]