1

作为一些背景,我正在尝试编写一个通用步骤,以匹配诸如

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 文件中的整个步骤被突出显示,这是次要的,但很高兴确切地知道正在抓取的内容,即双引号中的内容。

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

4

1 回答 1

3

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

When(/"([^"]*)"[^"]*"([^"]*)"/) do |action, target|
   #do something here
end
于 2013-10-09T17:10:02.397 回答