在 Gherkin/Cucumber 中转义注释 (#) 的官方方法是什么?

Jon*_*enn 5 regex escaping cucumber gherkin

我正在编写一个 Gherkin 功能文件,例如

Given the following # data
And   I open the page
Then  all fields are correct
Run Code Online (Sandbox Code Playgroud)

我不希望#上面的内容被解释为评论,这会删除data后面的内容。

#如果有的话,小黄瓜官方逃避该符号的方法是什么?我查看了官方文档和本指南,似乎都没有回答我的问题。

我尝试&hash;在我的解析器中使用发明的 HTML 实体,它可以工作并且很容易为其编写正则表达式。如果我要使用官方 HTML 实体#或使用反斜杠转义(例如 \#),则任一选项本身都会包含该#符号并使解析变得更加困难。但最终,如果可能的话,我宁愿使用官方方法,即使它实现起来有点困难。

提前致谢!

Jör*_*ann 4

ruby 和 java 实现中使用的语法可以在这里找到: https: //github.com/cucumber/gherkin/blob/master/ragel/lexer_common.rl.erb

看起来没有为注释定义任何转义,但由于 gherkin 是基于行的语法,我不希望注释在步骤之后实际被内联识别。与语法高亮相反

Given the following # data
When I open the page
Run Code Online (Sandbox Code Playgroud)

我希望该步骤的内容包含所有内容,包括“# data”部分。

这也是我对https://github.com/cucumber/cucumber/wiki/Gherkin#gherkin-syntax的描述的解释

文件中的任何位置都允许注释行它们以零个或多个空格开头,后跟井号 (#) 和一定量的文本。