正则表达式匹配所有黄瓜步骤并获取双引号

时间:2013-10-09 17:05:49

标签: ruby regex cucumber

作为一些背景知识,我试图编写一个与

等步骤相匹配的通用步骤
When I "click" on "send" button
When I "press" on that "clear" thingy
When I "select" some kind of "money" maker

并告诉我引号中的内容。

最佳步骤看起来像

When(/regex here/) do |action, target|
   #do something here
end

我已经尝试了(.*)"(.*)"(.*)"(.*)"(.*)并且确实有效,但需要我编写

这样的步骤
When(/(.*)"(.*)"(.*)"(.*)"(.*)/) do |unused, action, unused, target, unused|
   #do something here
end

另一个副作用是.feature文件中的整个步骤变得突出显示,这是次要的,但很高兴知道正在抓取什么,这是双引号。

实现这一目标的正则表达式是什么?

1 个答案:

答案 0 :(得分:3)

尝试使用[^"]匹配除"个字符以外的任何内容,并仅指定要捕获的组。例如:

When(/"([^"]*)"[^"]*"([^"]*)"/) do |action, target|
   #do something here
end