Ruby 获取步骤定义中引号内的所有项目

Ruby 获取步骤定义中引号内的所有项目,ruby,regex,cucumber,gherkin,Ruby,Regex,Cucumber,Gherkin,我有一个字符串:我附加dog.png、cat.png和alphabet.doc 这就是我想要的: 1. dog.png 2. cat.png 3. alphabet.doc 我可以通过执行[^]*来实现这一点,但是,字符串必须以'I attach'开头 这是我在步骤定义中的当前规则:/^I attach[^]*$/但这不起作用 这是给黄瓜/小黄瓜的,我可以用扫描找出一些东西,但我不认为你可以用在黄瓜/小黄瓜上 有什么建议吗 谢谢这似乎是使用和别名的好地方 Given I attach dog.

我有一个字符串:我附加dog.png、cat.png和alphabet.doc

这就是我想要的:

1. dog.png
2. cat.png
3. alphabet.doc
我可以通过执行[^]*来实现这一点,但是,字符串必须以'I attach'开头

这是我在步骤定义中的当前规则:/^I attach[^]*$/但这不起作用

这是给黄瓜/小黄瓜的,我可以用扫描找出一些东西,但我不认为你可以用在黄瓜/小黄瓜上

有什么建议吗


谢谢

这似乎是使用和别名的好地方

Given I attach dog.png
  And I attach cat.png
  And I attach alphabet.doc
...

或者,您可以使用简单的多行参数

这似乎是使用And别名的好地方

Given I attach dog.png
  And I attach cat.png
  And I attach alphabet.doc
...

或者,您可以使用简单的多行参数

如果您想在一个步骤中捕获可变数量的输入,我认为最好的选择是使用扫描。虽然不能在步骤名称中直接使用scan,但可以捕获文件的完整列表,然后解析捕获的结果

请尝试以下步骤定义:

Given /^I attach (.*)$/ do |file_list|
  files = file_list.scan(/"(.+?)"/).flatten
  #=> ["dog.png", "cat.png", "alphabet.doc"]
end

这将创建一个要附加的文件数组。它可以处理1到无限个文件。

如果您想在一个步骤中捕获可变数量的输入,我认为最好的选择是使用扫描。虽然不能在步骤名称中直接使用scan,但可以捕获文件的完整列表,然后解析捕获的结果

请尝试以下步骤定义:

Given /^I attach (.*)$/ do |file_list|
  files = file_list.scan(/"(.+?)"/).flatten
  #=> ["dog.png", "cat.png", "alphabet.doc"]
end

这将创建一个要附加的文件数组。它可以处理1到无限多个文件。

您认为您不能使用扫描?@pguardiario这些规则用于步骤定义您认为您不能使用扫描?@pguardiario这些规则用于步骤定义这很好。我想知道在这种情况下如何使用扫描。我对OP也有类似的需求,这很有帮助+这太棒了。我想知道在这种情况下如何使用扫描。我对OP也有类似的需求,这很有帮助+1.